压缩大文件时如何限制CPU使用率?----几种CPU资源限制方法的测试说明
2017-08-14 14:39
441 查看
一、说明
我们的MySQL实例在备份后需要将数据打包压缩,部分低配机器在压缩时容易出现CPU打满导致报警的情况,需要在压缩文件时进行CPU资源的限制。因此针对此问题进行了相关测试,就有了此文章。
二、测试过程
0. 正常打包
正常打包压缩操作:[root@mysql-test data1]$ du -sh 5555 34G 5555 [root@mysql-test data1]$ tar -czf 5555.tar.gz 5555
打包压缩过程中的CPU占用:
1. nice 命令打包
nice 命令用于设定进程的优先级,取值范围[-20,19],-20为最高,19为最低。使用nice命令:
[root@mysql-test data1]$ du -sh 5555 34G 5555 [root@mysql-test data1]$ nice -n 19 tar -czf 5555.tar.gz 5555
过程中CPU占用:
第4列 NI 列为19,表示优先级,此时已经是使用了最低优先级
由于平时并没有太多的任务进行(夜间备份期间更是如此),因此即使设置了最低优先级,依旧占用CPU较高
2. cpulimit 命令打包
cpulimit 可以为进程设置CPU使用率上限值并实时监控,若超出上限则暂停运行一段时间使用该命令需要先进行安装:
wget -O cpulimit.zip https://github.com/opsengine/cpulimit/archive/master.zip unzip cpulimit.zip cd cpulimit-master make sudo cp src/cpulimit /usr/bin
a. 安装后使用如下命令测试:
cpulimit -l 60 tar -czf 5555.tar.gz 5555 # 限制进程CPU占用率上限为60%
结果如下:
cpulimit 只针对单个进程进行限制,而gzip是另一个子进程,因此无效
b. 使用进程号进行限制:
先进行正常打包压缩操作:
tar -czf 5555.tar.gz 5555
找到该任务的gzip进程,使用cpulimit:
[root@mysql-test data1]$ cpulimit -l 60 -p 1695 Process 1695 found
CPU使用率被限制在60%:
3. cgroups 命令集
Linux 内核提供的一种机制,利用它可以指定一组进程的资源分配,不限于CPU该命令只在多个进程争抢资源时才生效,因此在此不再测试,有兴趣同学可自行研究,或参考最后链接的文章。
三、结论对比
nice与
cgroups命令适用于多个进程任务争抢CPU资源时,进行资源的分配与限制;而只有单一进程任务时依旧会最大限度占用资源
cpulimit针对单个进程生效,可以设定单个进程对CPU资源的使用率上限
四、参考文章
http://www.linuxidc.com/Linux/2015-01/112382.htm相关文章推荐
- 压缩大文件时如何限制CPU使用率?----几种CPU资源限制方法的测试说明
- 如何读取dll里资源文件 的几种方法
- linux tar (打包.压缩.解压缩)命令说明 | tar如何解压文件到指定的目录?
- ASP.NET中文件上传下载方法集合(上传限制,保存方式-二进制或文件形式,上传Internet上的资源 )
- 在java程序中几种配置文件方法比较如何?
- Linux下如何解压rar、zip格式文件?Linux VPS安装7zip/使用方法/压缩解压中文文件名乱码解决方案
- 读取资源文件的几种方法
- 使用资源调控器限制备份压缩的 CPU 使用量 (Transact-SQL
- phpt文件说明,php官方自动测试方法,run-test.php命令用法
- bash 下如何限制脚本并发运行的几种方法
- C#的几种压缩文件方法
- flash制作过程中避免占用CPU资源过度的几种方法
- linux tar (打包.压缩.解压缩)命令说明 | tar如何解压文件到指定的目录?
- Linux默认允许单进程打开文件数量限制测试与修改方法
- 转 - 动态载入及操作外部JS文件的几种方法(未测试)
- 如何修改MySQL导入数据库文件最大限制2048KB的方法
- linux tar (打包.压缩.解压缩)命令说明 | tar如何解压文件到指定的目录?
- 将PDF和图片文件如何转为Word或Excel分享几种转换器软件方法
- Java加载资源文件的几种方法
- 压缩目录Linux常用的几种文件压缩解压方法