can I make harddisk access slower or less frequent?

This is a strange question. I want to copy some large files from one harddrive to another on the same machine (on Linux from the command line).

The problem is that makes everything very slow.

I don't care though, to make the copying much slower and less HDD intensive. Let the machine take it time with it...

Is there a way to make the copy slower, but the resources on the machine more available?


To run a command with lower scheduling priority, using less resources, you could use the nice command:

The syntax is:

nice [OPTION] [COMMAND [ARG]...] 

where niceness ranges from -20 (most favorable scheduling) to 19 (least favorable) using the following parameter:

-n, --adjustment=N
    add integer N to the niceness (default 10) 

Instead of launching the program with the default priority, you can use the nice command to launch the process with a specific priority. For example, test.pl is launched with a "nice" value of 10 instead of the default 0 (this is a hyphen and not minus):

$ nice -10 perl test.pl

This will make the perl process get less scheduling slices from the kernel, thus getting less resources and leaving more for other processes.

For more information see A brief guide to priority and nice values in the linux ecosystem.


As regarding I/O scheduling, nice also has influence. Wikipedia Completely fair queueing makes this remark:

using nice(1) also modifies I/O priorities somewhat

For more information, see the article Linux I/O Schedulers.

You could also directly set the I/O priority of a process by using ionice(1):

ionice - set or get process I/O scheduling class and priority

The I/O scheduling and priority can be drastically modified, up to the lowest:

Idle
    A program running with idle I/O priority will only get disk
    time when no other program has asked for disk I/O for a
    defined grace period. The impact of an idle I/O process on
    normal system activity should be zero. This scheduling class
    does not take a priority argument. Presently, this scheduling
    class is permitted for an ordinary user (since kernel
    2.6.25).

A disk drive is interrupt driven and will just work to keep up with the data.

So the answer to your question is that you cannot slow down the copy.

If you truly need more resources when copying, then replace both source and target drives with fast SSD drives. That will solve your issue.

I copy 200 GB of machines from one computer to the other monthly or quarterly. Both machines have fast SSD drives.

There is no (practical) slowdown on either machine during the (near) hour copy.

I had the resource issue you mention with slow hard drives (XP days) and the solution then was to do the large copy when the machines were not needed otherwise.