为cronjob节streamCPU使用率

我有一个cronjob,基本上不过是mysqldump whatever | gzip > backup.sql.gz mysqldump whatever | gzip > backup.sql.gz 。 数据库相当大。 我注意到,当这个工作正在运行时,我的apache的响应速度非常慢,CPU使用率就像这样

  %CPU COMMAND 15.1 gzip 14.1 mysqld 13.1 mysqldump 

有没有办法使这个工作使用较less的CPU,也许在花费的时间更长?

  ionice -c 3 nice mysqldump whatever | ionice -c 3 nice gzip > backup.sql.gz 

你可以使用nice和renice来改变进程的优先级。 这将意味着他们获得的CPU更less。

你可能不想renice mysqld,但mysqldump和gzip可以安全地改变他们的优先级。

如果您在使用太多磁盘时遇到问题,可以使用ionice 。

如果您的Web应用程序正在写入“任何”数据库,则必须等待mysqldump完成,因为默认情况下会locking表。 如果是这种情况,你降低优先级,你会让问题变得更糟。

首先将数据库转储为纯文本,然后运行gzip压缩文件。 这样,mysqldump可以更快地完成并释放locking,而MySQL和Apache可以在gzip运行的同时执行其业务。