How to get a command line process to use less processing power

advertisements

I am wondering how to get a process run at the command line to use less processing power. The problem I'm having is the the process is basically taking over the CPU and taking MySQL and the rest of the server with it. Everything is becoming very slow.

I have used nice before but haven't had much luck with it. If it is the answer, how would you use it?

I have also thought of putting in sleep commands, but it'll still be using up memory so it's not the best option.

Is there another solution?

It doesn't matter to me how long it runs for, within reason.

If it makes a difference, the script is a PHP script, but I'm running it at the command line as it already takes 30+ minutes to run.

Edit: the process is a migration script, so I really don't want to spend too much time optimizing it as it only needs to be run for testing purposes and once to go live. Just for testing, it keeps bring the server to pretty much a halt...and it's a shared server.


You should use nice with 19 "niceness" this makes the process very unlikely to run if there are other processes waiting for the cpu.

 nice -n 19 <command>

Be sure that the program does not have busy waits and also check the I/O wait time.