首页 > 系统相关 >Linux基础22 进程的优先级nice, 后台进程管理, 系统平均负载, 系统启动流程

Linux基础22 进程的优先级nice, 后台进程管理, 系统平均负载, 系统启动流程

时间:2023-05-19 18:14:43浏览次数:47  
标签:oldboyedu 系统启动 优先级 22 screen 进程 root CPU

进程的优先级:

nice值越高:表示优先级越低,例如19,该进程容易将CPU使用量让给其他进程。
nice值越低:表示优先级越高,例如-20,该进程更不倾向于让出CPU。

# 以设定的优先级启动
nice -n -10 tail -f /var/log/messages

#重新设置一个进程的优先级(调整sshd的优先级)
[root@oldboyedu ~]# renice -n -20 6684    (改完主进程变为-20,退出再登录sshd子进程也都变为-20)
6684 (process ID) old priority 0, new priority -20

6684 -20 /usr/sbin/sshd -D
9038 -20 sshd: root@pts/0
9067 -20 sshd: root@pts/1
注:java可能写了个进程,不断fork进程,占用文件描述符过多,导致oom,系统杀死线程后,进程fork出新的进程,达到死循环。此时sshd很难连接上去,很多服务页面打不开,但是都是通的
可以通过把sshd优先级调到最高,保证sshd正常连接

sshd连接不上的几种原因

1.网络
    ping 10.0.0.100
    
2.端口
    telnet 10.0.0.150 22
    tcping 10.0.0.150 22    # 新买的阿里云会禁ping和telnet,可以用tcping测试
                yum install -y tcping
3.用户
    root
4.密码
    1

 

nice:设置优先级
-n:指定优先级

nice -n -20  command
renice -n -5 pid

 

后台进程管理:

jobs:查看后台进程        # 会显示当前后台所有进程
bg:永久放到后台执行    
fg:调出后台任务        # fg %1 会调出jobs中第一个任务
screen:    # 后台进程管理, 可用于查看后台进程进度
    -S:起名
    -ls:查看后台进程的列表
    -r:指定pid或者名字,进入后台进程
    kill + pid 杀掉进程
    
    退出终端:ctrl +a +d

[root@oldboyedu ~]# yum install -y screen
操作举例(整套流程)    
[root@localhost ~]# screen    # 创建终端
[root@localhost ~]# ping www.baidu.com
ctrl +a +d    # 退出终端,ping在后台运行(连按两次,会退出外层的终端(sshd))
[root@localhost ~]# screen -ls    # 查看终端里任务pid
There is a screen on:
        113269.pts-0.localhost  (Detached)
1 Socket in /var/run/screen/S-root.
[root@localhost ~]# screen -r 113269    # 进入终端

    

[root@oldboyedu ~]# screen -ls    # 查看终端
There is a screen on:
    9461.pts-1.oldboyedu    (Detached)
1 Socket in /var/run/screen/S-root.

[root@oldboyedu ~]# screen -r 9461    # 进入该终端
[root@oldboyedu ~]# screen -S ping_baidu    # 开一个终端,起个名
[detached from 9539.ping_baidu]
[root@oldboyedu ~]# screen -ls
There are screens on:
    9539.ping_baidu    (Detached)
    9518.pts-1.oldboyedu    (Detached)
    9461.pts-1.oldboyedu    (Detached)
3 Sockets in /var/run/screen/S-root.

[root@oldboyedu ~]# screen -r ping_baidu    # 进入终端
[detached from 9539.ping_baidu]
[root@oldboyedu ~]# screen -r 9539
[detached from 9539.ping_baidu]

 

系统平均负载

cpu   top上的load average
4        2    # 50%cpu没有合理利用到
2        2    # 100%cpu被用到
1        2    # 超负荷(一半的进程占用不到cpu)

企业中,一般当平均负载高于70%的时候,就需要排查负载高的问题了。

stress:是Linux系统压力测试工具,这里我们用作异常进程模拟平均负载升高的场景。
[root@oldboyedu ~]# yum install -y stress

mpstat:是多核CPU性能分析工具,用来实时检查每个CPU的性能指标,以及所有CPU的平均指标。
[root@oldboyedu ~]# yum install -y sysstat

pidstat:是一个常用的进程性能分析工具,用来实时查看进程的CPU,内存,IO,以及上下文切换等性能指标。
[root@oldboyedu ~]# yum install -y sysstat
测试操作
stress --cpu 4 --timeout 600    # cpu压测
查看系统平均负债
watch -d uptime    # watch 动态查看 -d高亮标出变化的内容
查看cpu使用情况(判断是否是cpu引起的问题)
mpstat -P ALL 5
查看哪个进程导致cpu持续上升
pidstat -u 5 1

stress --io 1000 --timeout 600    # io压测
查看系统使用情况
mpstat -P ALL 5    #CPU不高,但是io升高会导致%sys系统内核态升高
查看哪个进程导致内核态持续上升
pidstat -u 5 1
注: io的升高并不会导致系统很卡

stress -c 4 --timeout 600    # 大量进程
查看系统使用情况
mpstat -P ALL 5    #CPU上升
iostat -d 10    # 查io

总结:

1.平均负载高有可能是CPU密集型进程导致的
2.平均负载高并不一定代表CPU的使用率就一定高,还有可能是I/O繁忙
3.当发现负载高时,可以使用mpstat、pidstat等工具,快速定位到,负载高的原因,从而做出处理

 

系统启动流程

开机启动流程CentOS6:
1.加电自检(BIOS)检查硬件
2.内核引导MBR
3.grub菜单   --->选择系统
4.加载内核
5.加载init    # 运行级别(默认为3, 5为图形化界面)
6.进入终端

开机启动流程CentOS7:
1.加电自检(BIOS)检查硬件
2.内核引导MBR
3.grub菜单   --->选择系统
4.加载内核
5.加载Systemd    # 不再使用init, 改成systemd
6.进入终端

 

标签:oldboyedu,系统启动,优先级,22,screen,进程,root,CPU
From: https://www.cnblogs.com/ludingchao/p/17415944.html

相关文章

  • MAY 2022-Composite Experience Replay-Based Deep Reinforcement Learning With Appl
    摘要:本文提出了一种基于深度强化学习(RL)的控制方法,以提高学习效率和效果来解决风电场控制问题。具体地,设计了一种新的复合体验重放(CER)策略,并将其嵌入到深度确定性策略梯度(DDPG)算法中。CER提供了一种新的采样方案,通过在奖励和时间差异(TD)误差之间进行权衡,可以深入挖掘存储变......
  • 记一次将 .netcore 项目用 IIS 进程调试
    环境:win10,VisualStudio2022 在.netframework年代,我们都习惯用iis进程调试代码。因为用F5调试代码效率太低下。现在.netcore时代,这种好习惯可不能丢。简单记录一下,我的操作过程。 1.首先用IIS挂载网站,看能不能把发布的好的网站跑起来2.其次用IIS增加网站,......
  • day45| 70+322+279
    70.爬楼梯 题目简述:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 思路:1.要想爬到第n阶,必须先上第n-1阶或者n-2阶2.利用动态规划,定义初始条件dp[0]=1,dp[1]=23.有dp[i]=dp[i-1]+dp[i-2],其中i......
  • (转载)阿里蚂蚁2022GBA背后的测试技术发展
    阿里蚂蚁2022GBA背后的测试技术发展[编者注:这篇文章很长(8998个字),但作者用心良苦,基于44个GBABug的分析,几乎让我们获得了软件测试工程师一生职业生涯中所需的经验、找Bug所需的技能,值得慢慢阅读和体会,然后记录下对自己有用的要点。]前言这个文章也是欠了大半年了,现在想要出来还......
  • 2022这一年
    前言一年过得好快啊,这个年终总结不知道该写点啥,所以一直到现在也没动笔。但如果不写吧,总感觉少了点什么。就像过年守夜,反正我是每年都要等到凌晨12点放完鞭炮后才睡。前些天也看到不少博主发布了2022年终总结,看着都过得很充实,至少比我活得有滋味。其中看到一博主,分享了一篇《十......
  • 代码随想录算法训练营第十天|232. 用栈实现队列、225. 用队列实现栈
    【参考链接】1.栈提供push和pop等等接口,所有元素必须符合先进后出规则,所以栈不提供走访功能,也不提供迭代器(iterator)。不像是set或者map提供迭代器iterator来遍历所有元素。2.栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔的(也就是说我们可以控制使......
  • 从零玩转Activiti7工作流-2021-09-12-16-22-07
    title:从零玩转Activiti7工作流date:2021-09-1216:22:08.51updated:2021-12-2617:43:12.171url:https://www.yby6.com/archives/2021-09-12-16-22-07categories:-工作流tags:Activiti讲师:波波​工作流(Workflow),就是通过计算机对业务流程自动化执行......
  • “信”创未来 | AntDB数据库2022年度总结,请查收!
     关于AntDB数据库AntDB数据库始于2008年,在运营商的核心系统上,为全国24个省份的10亿多用户提供在线服务,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔通信核心交易,保障系统持续稳定运行近十年,并在通信、金融、交通、能源、物联网等行业成功商用落地。......
  • 界面控件DevExpress Blazor UI v22.2 - 报表、富文本编辑器组件增强
    DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpressDashboardeXpressApp框架、适用于VisualStudio的CodeRush等一系列辅助工具,该组件拥有众多新产品和数十个具有高影响力的功能,可为桌面、Web和移动应用提供直观的解决方案,全面解决各种使用场......
  • SolidCAM_2022_SP2 Mult for SolidWorks完整CAD/CAM解决方案
    SolidCAM_2022_SP2MultforSolidWorks:完整CAD/CAM解决方案SolidCAM_2022_SP2MultforSolidWorks是一款完整的CAD/CAM解决方案,它为SolidWorks用户提供了一种高效、准确和可靠的加工解决方案。SolidCAM_2022_SP2MultforSolidWorks具有强大的功能和易于使用的界面,可以帮助用户......