linux限制cpu
① linux查看系统进程:Linux系统中如何限制用户进程CPU占用率
实际上在中用户进程运行很长时间是可以接受
而占用CPU过高则让其他用户无法忍受而其很有可能是用户有问题这个时候系统应该自动阻止这样进程继续消耗系统资源最简单思路方法就是通过ps发现CPU占用率超过某个限制用户进程然后将该进程杀死这种做法很暴力而且用户发现他进程被杀以后很可能又启动进程这样恶性循环有种折中思路方法不是将目标进程杀死而是适当调整其nice值具体见如下shell:renice +10 `ps aux | awk '{ ($3 0.8 && id -u $1 500) pr $2}'`
② Linux系统中如何限制用户进程CPU占用率
而占用CPU过高则让其他用户无法忍受,而其很有可能是用户程序有问题,这个时候系统应该自动阻止这样的进程继续消耗系统资源。 最简单的方法就是通过ps发现CPU占用率超过某个限制的用户进程,然后将该进程杀死,这种做法很暴力,而且用户发现他的进程被杀以后很可能又启动进程,这样恶性循环。 有一种折中的方法,不是将目标进程杀死,而是适当调整其nice值,具体见如下shell程序: renice +10 `ps aux | awk '{ if ($3 > 0.8 && id -u $1 > 500) print $2}'` (责任编辑:云子)
③ Linux下调节CPU使用的几种方法
一,使用taskset充分利用多核cpu,让cpu的使用率均衡到每个cpu上
#taskset
-p, 设定一个已存在的pid,而不是重新开启一个新任务
-c, 指定一个处理,可以指定多个,以逗号分隔,也可指定范围,如:2,4,5,6-8。
1,切换某个进程到指定的cpu上
taskset -cp 3 13290
2,让某程序运行在指定的cpu上
taskset -c 1,2,4-7 tar jcf test.tar.gz test
需要注意的是,taskset -cp 3 13290在设定一个已经存在的pid时,子进程并不会继承父进程的,
因此像tar zcf xxx.tar.gz xxx这样的命令,最好在启动时指定cpu,如果在已经启动的情况下,则需要指定tar调用的gzip进程。
二,使用nice和renice设置程序执行的优先级
格式:nice [-n 数值] 命令
nice 指令可以改变程序执行的优先权等级。指令让使用者在执行程序时,指定一个优先等级,称之为 nice 值。
这个数值从最高优先级的-20到最低优先级的19。负数值只有 root 才有权力使。
一般使用者,也可使用 nice 指令来做执行程序的优先级管理,但只能将nice值越调越高。
可以通过二种方式来给某个程序设定nice值:
1,开始执行程序时给定一个nice值,用nice命令
2,调整某个运行中程序的PID的nice值,用renice命令
通常通过调高nice值来备份,为的是不占用非常多的系统资源。
例:
nice -n 10 tar zcf test.tar.gz test
由nice启动的程序,其子进程会继承父进程的nice值。
查看nice值
# nice -n -6 vim test.txt &
# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 19427 2637 0 75 0 – 16551 wait pts/6 00:00:00 bash
4 T 0 21654 19427 0 71 -6 – 23464 finish pts/6 00:00:00 vim
renice调整运行中程序的nice值
格式:renice [nice值] PID
三,使用ulimit限制cpu占用时间
注意,ulimit 限制的是当前shell进程以及其派生的子进程。因此可以在脚本中调用ulimit来限制cpu使用时间。
例如,限制tar的cpu占用时间,单位秒。
# cat limit_cpu.sh
ulimit -SHt 100
tar test.tar.gz test
如果tar占用时间超过了100秒,tar将会退出,这可能会导致打包不完全,因此不推荐使用ulimit对cpu占用时间进行限制。
另外,通过修改系统的/etc/security/limits配置文件,可以针对用户进行限制。
四,使用程序自带的对cpu使用调整的功能
某些程序自带了对cpu使用调整的功能,比如nginx服务器,通过其配置文件,可以为工作进程指定cpu,如下:
worker_processes 3;
worker_cpu_affinity 0001 0010 0100 1000;
这里0001 0010 0100 1000是掩码,分别代表第1、2、3、4颗cpu核心,这就使得cpu的使用比较平均到每个核心上。
④ 怎样利用shell脚本或者程序,控制linux系统CPU和内存使用率
系统CPU和内存是无法控制的,只能是在系统上跑个什么后台进程或者程序来使CPU下降才行。
⑤ Linux最多可以管理几个CPU
Linux基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。看硬件配置情况,一般是4个。。
⑥ linux top命令下 CPU: 35%hi 15%si hi si 异常的高有什么优化或解决问题的方法提示吗
inux top命令下 CPU: 35%hi 15%si hi si 异常高的解决方法:
cpu占用率偏高,这个得看具体的负载,是哪一个程序导致的cpu偏高,并不是系统优化就可以解决的。
一些程序本来就需要占用大量的cpu资源,比如跑密码等,在cpu占用率受限的情况下,程序就不能很好的完成工作。
再有一些程序本身有bug,或者存在兼容问题。wine程序的cpu占用率总是偏高的。
系统能做的就是按照管理员的意图分配足够的资源或者限制。
cpulimit,这个程序可以限制指定程序的cpu占用率,在ubuntu下,可以用apt-get命令安装,具体使用方法可以在安装之后man cpulimit。
linux下还可以进行磁盘配额等等限制。
⑦ Linux下如何控制进程对CPU资源的占用呢
我的思路是 去/proc下查找每个进程目录的信息,再计算进程的时间,随后计算CPU的占用率,同理控制也用这个原理,因为CPU的资源占用率并不能直接得到