Linux负载与CPU的关系

目录
1 、CPU利用率和负载的关系
2、进程管理
3、taskset管理多核CPU的负载

1、CPU利用率针对单个CPU而言,CPU负载反映等待CPU的进程数

CPU利用率指的是进程运行时占用CPU的百分比;
CPU当前繁忙:利用率忽高忽低(%idle),可能是占用CPU的进程处于IO等待状态未释放(iostat可查)
CPU负载指的是某段时间占用CPU的进程和等待CPU的进程数(等待被唤醒的进程:不包括wait);
CPU利用率高并不意味着CPU负载大:例如一个进程一直使用CPU,占用率100%;同时执行两个进程,CPU利用率仍为100%,但负载为2;意味着CPU需要在不同进程间来回切换。
一句话总结:CPU利用率是纵向的,CPU负载是横向的

2、主要包括进程信号和信号传达,进程优先级调整

常见进程信号有3个:

-1: SIGHUP 用于启动进程,进程会重新读取pid文件
-9: SIGKILL 强制终止进程,会产生半成品
-15: SIGTERM 以正常程序终止进程

进程间信号的传达方式:

kill:终止某一进程如 kill -9 15581
killall:终止某一服务所有进程如 killall httpd
pkill:pkill=pgrep + kill, 和killall类似,区别是可以输入进程的部分名称就能操作,而killall输入的进程名称如果不全会报错。如 pkill http

进程优先级:

进程的优先级(priority)决定CPU执行进程的顺序,
用户调整PRI需要通过nice值:nice, renice
命令的区别在于nice用于初始PID的nice调整,而renice用于已存在的PID的nice调整;
PRI=PRI+nice,但最终的nice值内核会做调整。
规范:
root用户:可调整所有人的nice,调整范围-20~19
普通用户:只能调整自己的nice,只能调高:0~19
调整示例:
nice -n 19 vi & 给vi进程设置nice为19并放到后台执行
renice 10 18425 给PID 18425设置nice为+10

3、如果是多核CPU,进程管理需要用到teskset进行负载调整

1)查看CPU信息: cat /proc/cpuinfo
2)查看不同CPU的使用情况: mpstat -P ALL 1 10
3)pidstat确定问题进程: pidstat
4)tastset切换进程到特定CPU:
taskset -C 0 sh nginx_oneclick.sh 将nginx_oneclick.sh 运行在0号CPU上
taskset -P -C 0 18254 将PID=18254的进程,运行在0号CPU上

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一个程序被加载到内存当中运行,那么在内存内的那个数据就被称为进程(process)。进程是操作系统上非常重要的概念...
    Zhang21阅读 6,141评论 0 12
  • 进程相关概念 内核的功能 进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等。 process 进程,正...
    夹克K阅读 4,662评论 0 1
  • 进程和计划任务 如何产生一个进程: 1)执行程序或者是命令 2)计划任务 如何终止一个进程: 1)程序或者是命令执...
    崔千易阅读 3,237评论 0 1
  • Linux进程 进程(Process): 运行中的程序的一个副本进程存在生命周期,程序是一个静态的文件 Linux...
    SRE1阅读 4,662评论 0 0
  • Linux进程管理原理 Linux的进程管理,就是对硬件各资源进行分配、调度、销毁等工作,其主要部件的管理为:CP...
    魏镇坪阅读 5,193评论 0 6