最近因为遭受到工作上的一些打击,回过头来再次打开了很久没有用过的csdn博客去记录自己的学习,以此来激励自己还有需要努力学习的地方,自己的不足之能依靠这些知识点一步一步积累。
说到linux性能优化,其实是受到另一位老师的启发以及自身项目上的一些问题。可能我们自己本身工作时候的项目并不算特别难,而且因为有日志系统的存在,对于可能出现的问题大多数实行的就是top或者uptime,找出对应服务器可能存在的代码以及日志进行着重复而且低效率的性能问题查询以及优化,这篇博客是用来学习一些linux上可能出现的性能问题对照表,以及对应的解决方案,用于提醒自己一个解决问题的思路具体应该是怎么样子的。
1、平均负载概念:
单位时间内处于可运行状态以及不可中断状态的进程个数,即平均活跃进程数。
使用uptime后
[root@VM-0-5-centos ~]# uptime
22:47:00 up 12:56, 1 user, load average: 0.01, 0.04, 0.05
在最尾行的三个数字:0.01,0.04,0.05 分别代表着过去1,5,15分钟的平均负载
如果 1 分钟、5 分钟、15 分钟的三个值基本相同,或者相差不大,那就说明系统负载很平稳。但如果 1 分钟的值远小于 15 分钟的值,就说明系统最近 1 分钟的负载在减少,而过去 15 分钟内却有很大的负载。反过来,如果 1 分钟的值远大于 15 分钟的值,就说明最近 1 分钟的负载在增加,这种增加有可能只是临时性的,也有可能还会持续增加下去,所以就需要持续观察。一旦 1 分钟的平均负载接近或超过了 CPU 的个数,就意味着系统正在发生过载的问题,这时就得分析调查是哪里导致的问题,并要想办法优化了。
平均负载过高的查询方案与分析
Uptime. 查看平均负载
——grep 'model name' /proc/cpuinfo | wc -l 查看当前内核数
——watch -t uptime. 查看平均负载变化
—————(平均负载率明显偏高,大量进程场景)
——mpstat
—————(cpu使用率过高,iowait稳定,cpu密集型进程)pidstat -u 5 1 查看具体哪个进程使平均负载率增加
—————(cpu使用率偏高,iowait过高,i/o密集型) pidstat -u 5 1 查看具体哪个进程使平均负载率增加