这些日子,运维公司三台服务器,一个小伙伴貌似对top命令不太感冒,我告诉他去百度(不懂谷歌百度的程序员不是好厨师),然后突然发现也许我自己该整理一下相关的东西了
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。
在linux下,执行top命令
top命令是可以输入交互命令的,按“H”或者“?”就可以看到交互命令的帮助。
在top命令的交互模式当中可以执行以下的命令来显示相应的信息
- P :以cpu的使用率排序,默认就是以cpu使用率排序
- M:以内存的使用率排序
- N:以pid排序
- q:退出top
对于top命令来讲,最主要的作用就是上边那五行,通过这五行,能够很好的分析系统的健康状态。
上图是top命令的执行结果,其中 表示top命令的执行时间,注意,top命令默认的是每三秒钟执行一次,下面依次说说几个比较重要的系统指标。
- 表示当前系统运行多长时间,很多人都在linux一些论坛炫耀,我的系统运行多久多久了(由于这台机器为我的测试机所以很久我也没有重启过了),这种做法,我是不建议采取的,因为我们运维服务器的最终目的是为了保证系统正常稳定的运行,而不是飚你的运行时间有多久。对于服务器来讲,重启服务器间隔时间越长,服务器出现问题的可能性就会越大,系统中缓存,临时文件啥的啊,导致系统越来越卡,千万不要去追求系统运行时间,要追求系统的无故障率。比较好的做法是定期的重启服务器,如果是高压力高负载的服务器,建议一周重启一次。如果是低压力服务器,建议每个月重启一下。有计划的重启服务器,也是服务器运维的基本的一个原则。
- 表示当前系统,在一分钟之前,五分钟之前和十五分钟之前的平均负载。这个值得衡量标准,经验之谈,一般以服务器cpu核数来看,如果服务器cpu核数为2,这个值不能大于2;如果cpu核数为4,这个值不能大于4。注意,如果服务器为4核,但是这个值正好为4,通过查看cpu使用率,内存占用率均为百分之六七十,那么我们认为那个值是合理值(需要从系统的真实使用情况来分析)。
-
记录了系统总共运行的进程数total 其中, running:在运行的进程 sleeping:休眠进程 stopped :停止的进程 zombie:僵尸进程
us:用户进程占用cpu百分比 sy:系统进程占用cpu百分比 ni:被修改过优先级进程占用的百分比 id:系统空闲百分比(重要指标),一般认为不能低于百分之20
对于wa,hi,si,st不常使用,如果碰到请自行百度.
-
这些指标是针对的内存和swap(交换分区)来说的,在这里buffer是缓冲,它的作用是加速了数据的写入,cache是缓存,它的作用为加速了数据的读写,
对于下部分结果信息,显示的是每个系统进程的运行状态,类似于ps命令,默认系统已cpu占有率为基准,谁的cpu占有率高谁就排到顶部,依次排列。
解释一下几个关于top参数:
top -b -n -1 >top.log 将top命令结果集 输出到top.log 中
总结,top命令,最主要的就是上五行指标参数,我们在运维服务器的时候应该集中关注的有load average,cpu的空闲率,内存的空闲率。