进程的优先级

学向勤中得,萤窗万卷书。这篇文章主要讲述进程的优先级相关的知识,希望能为你提供帮助。
进程的优先级[toc]
什么是优先级【进程的优先级】优先级别高的进程,可以优先享用系统的资源
优先级的定义和配置
在启动进程时,为不同的进程使用不同的调度策略
nice值的高低决定进程的优先使用资源
nice值高:表示优先级越低,例如19,该进程容易将CPU使用量给其他进程
nice值低:表示优先级越高,例如-20,该进程很难让去CPU资源给其他进程

#设置优先级执行命令 nice -n (1-19)命令 例:nice -n 19 vim 1.txt##重置,已运行的程序优先级 命令: renice-n-(1-20)PID

后台进程管理
& 符的用处 # 在执行的命令后面加 & 会直接将该命令放在后台执行 例 ping baidu.com & 就是把该命令放到后台执行Ctrl + z jobs bg fg # 先把进程放在后台暂停 配合 bg将暂停的进程,在后台恢复运行# 将执行的命令放入后台执行,并且将输出结果保存到 nohup.out文件中 nohup ping baidu.com & # 将进程放入后台(开启一个子shell) screen (没有命令需要下载)yum install -y screen -ls:查看所有screen的后台进程 -r:指定后台进程号,进入该后台进程 -S:指定后台进程的名字 Ctrl + a + d:放在后台执行

平均负载什么是平均负载
平均负载是指,单位时间内,系统处于可运行状态(R)和不可中断状态(D)的平均进程数,也就是平均活跃进程数
平均负载多少合理
理想情况,一个cpu一个进程最合理,也就是4核cpu,平均负载为4的时候最合理。但是,通常我们会认为平均负载到了70%的时候,就应该观察了。如果是4核CPU,那么就在负载2.8时进行观察#查看CPU的个数 1.ll /proc/cpuinfo2.进入 top 按 1 lscpu

CPU类型
CPU密集型:计算相关 IO密集型:数据库相关

测试负载分析实战
领导:某一台服务器,很卡,怎么办? 卡的原因:服务器,负载太高 如何定位,什么程序,导致负载高? 如何定位,负载高,是哪个硬件引起的? #模拟工具 stress (没有命令需要安装)yum install -y stressstress是Linux系统压力测试工具,这里我们用作异常进程模拟平均负载升高的场景。 #使用工具 mpstat是多核CPU性能分析工具,用来实时检查每个CPU的性能指标,以及所有CPU的平均指标。 pidstat是一个常用的进程性能分析工具,用来实时查看进程的CPU,内存,IO,以及上下文切换等性能指标#使用stress命令模拟4个占用cpu进程 [root@localhost ~]# stress --cpu 4 --timeout 600#使用mpstat命令查看,没5秒显示一次数据(可修改) [root@localhost ~]# mpstat -P ALL 5 下面可以看出,是用户态的进程导致CPU过高 Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 05/06/2022 _x86_64_ (4 CPU) 07:56:14 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 07:56:19 PM all 99.95 0.00 0.05 0.00 0.00 0.00 0.00 0.00 0.00 0.00 07:56:19 PM 0 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 07:56:19 PM 1 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 07:56:19 PM 2 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 07:56:19 PM 3 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00#使用pidstat查看 [root@localhost ~]# pidstat -u 5 2 -u指定几秒输出一次数据2 ,总共输出2组数据#也可以使用stress命令让io负载升高 [root@localhost ~]# stress --io 100 --timeout 600#总结 1.系统卡顿时使用top命令查看系统负载注:是系统负载 2.看系统负载1分种5分钟 15分钟的负载趋势 3.查看时什么情况导致负载上升 mpstat -p all看是用户态,还是内核态,导致负载上升 用户态:CPU使用率,大量进程 内核态:磁盘IO,压缩文件,网络存储挂在,下载文件,数据库查询语句 4.查看是那个程序引起的用户态内核态负载上升 pidstat -u 5 2 5.查看了是某个进程后 问题责任在于运维:查看是否是某条命令导致查看是不是某个服务导致 问题责任在于开发:查看开发的程序日志,导出日志,交给开发


    推荐阅读