栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux性能优化学习笔记1

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux性能优化学习笔记1

运维入门的时候,掌握的其中两个命令是top、uptime。

这两个命令在某一个点其实是一样的,就是对于cpu平均负载这个点上。如下图所示

这两个命令得到的load average(平均负载)是一样的。这里一共有三个数值。分别代表了cpu在1分钟、5分钟、15分钟的平均负载。 通过观察这里。我们可以以三个时间段cpu的平均负载情况来判断。服务器的cpu平均负载的趋势。

1、假设服务器是有2个核心的cpu,那么怎么样才算是一个较为合理的平均负载呢。一般来说,我们都是已达到70%的数值来判断是较为合理的,当然了这个数值不是绝对的,在不同的场景可以有不同的判断,但最为粗暴。我们理论上来说,平均负载是2,就是实现cpu核心处理刚刚好,1.4是较为合理的状态。

2、cpu平均负载≠cpu利用率,两者有着很大的区别。其中影响到cpu平均负载的,我能了解到的有正在使用cpu的进程、正在等待cpu的进程、IO进程,这些都会影响到cpu的平均负载,所以不能单纯的就直接判断cpu平均负载等于cpu利用率。

在这里我们使用到2个工具,stress、sysstat

stress是专业的cpu压力测试模拟工具,例如

stress --cpu 1 --timeout 600 # 打满1个cpu,运行600秒

stress -i 1 --timeout 600 $ 模拟IO

watch -d uptime # 查看uptime负载均衡情况,默认2秒刷新一次

mpstat -P ALL 5 # 查看cpu的使用详细情况5次

pidstat -u 5 1 # 查看cpu使用最大的5个进程情况,打印1次

通过各种组合,我们可以发现cpu的平均负载,是一个综合情况来的。可以结合专业的工具进行排查,找到正常的原因。

cpu上下文

cpu里面有两个概念,分别是寄存器和计时器。一个是负责记录cpu切换上下文的记录的。计数器没晓得是干啥的。

cpu切换上下文,说白了就是为了确保任务看起来,并且确保任务的连续性,同时性的。

cpu切换上下文,从位置来分,可以分为用户态和内核态。用户态无法直接访问底层的资源,而内核态可以。举个例子。用户有个命令让cpu去执行。顺序应该是用户指令(用户态)---调用器---cpu记录执行中指令的记录、下一个待执行指令的记录---执行完毕后更新记录---调用器---用户态

从使用方式来说,分为线程上下文切换、进程上下文切换、中断上下文切换

最高优先级是中断(内核态)

较优的是线程(资源共享)

常见的是进程(资源不共享)

但过多的上下文切换,会把 CPU 时间消耗在寄存器、内核栈以及虚拟内存等数据的保存和恢复上,从而缩短进程真正运行的时间,导致系统的整体性能大幅下降

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/944541.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号