笔记:用十条命令在一分钟内检查Linux服务器性能

2018-06-12  本文已影响0人  周少言

一:用十条命令在一分钟内检查Linux服务器性能
二:linux 服务器性能监控
三:分分钟拯救监控知识体系
四:中小企业监控体系构建实战

linux服务器性能调优
https://www.cnblogs.com/ace-lee/p/6628079.html

观其大纲:

零:基础概念

01 -负载均值(load averages)

一:用十条命令在一分钟内检查Linux服务器性能

01 uptime 快速查看机器负载情况
dmesg | tail
vmstat 1
mpstat -P ALL 1
pidstat 1
iostat -xz 1
free -m
sar -n DEV 1
sar -n TCP,ETCP 1
top

二:linux 服务器性能监控

CPU、内存以及硬盘的关系是怎样的?
进程和线程是什么?有什么区别?有什么优缺点?
什么是物理内存?什么是虚拟内存?什么时候要用到虚拟内存?
什么是CPU中断?CPU上下文切换?CPU缺页计算?
怎么理解系统负载?如何通过load average的值来判断系统负载是否过高?

三:分分钟拯救监控知识体系

四:中小企业监控体系构建实战




熟知概念

零:基础概念

01 负载均值(load averages)

系统平均负载被定义为在特定时间间隔内运行队列中的平均进程数
如果一个进程满足以下条件则其就会位于运行队列中:
  - 它没有在等待I/O操作的结果
  - 它没有主动进入等待状态(也就是没有调用'wait')
  - 没有被停止(例如:等待终止)
  例如:

  [root@opendigest root]# uptime
  7:51pm up 2 days, 5:43, 2 users, load average: 8.13, 5.90, 4.94

命令输出的最后内容表示在过去的1、5、15分钟内运行队列中的平均进程数量

一般来说只要每个CPU的当前活动进程数不大于3那么系统的性能就是良好的,如果每个CPU的任务数大于5,那么就表示这台机器的性能有严重问 题。对于上面的例子来说,假设系统有两个CPU,那么其每个CPU的当前任务数为:8.13/2=4.065。这表示该系统的性能是可以接受的。

一:用十条命令在一分钟内检查Linux服务器性能

01 uptime 快速查看机器的负载情况

$ uptime    
23:51:26 up 21:31,  1 user,  load average: 30.02, 26.43, 19.02

快速查看机器的负载情况。

02 dmesg | tail
该命令会输出系统日志的最后10行。示例中的输出,可以看见一次内核的oom kill和一次TCP丢包。这些日志可以帮助排查性能问题。千万不要忘了这一步。

03 vmstat 1
每行会输出一些系统核心指标,这些指标可以让我们更详细的了解系统状态。后面跟的参数1,表示每秒输出一次统计信息

04 mpstat -P ALL 1
该命令可以显示每个CPU的占用情况,如果有一个CPU占用率特别高,那么有可能是一个单线程应用程序引起的。

05 pidstat 1
pidstat命令输出进程的CPU占用率,该命令会持续输出,并且不会覆盖之前的数据,可以方便观察系统动态。如上的输出,可以看见两个JAVA进程占用了将近1600%的CPU时间,既消耗了大约16个CPU核心的运算资源。

06 iostat -xz 1
iostat命令主要用于查看机器磁盘IO情况

07 free -m
free命令可以查看系统内存的使用情况,-m参数表示按照兆字节展示。

08 sar -n DEV 1
sar命令在这里可以查看网络设备的吞吐率。在排查性能问题时,可以通过网络设备的吞吐量,判断网络设备是否已经饱和。

09 sar -n TCP,ETCP 1
sar命令在这里用于查看TCP连接状态

10 top
top命令包含了前面好几个命令的检查的内容。比如系统负载情况(uptime)、系统内存使用情况(free)、系统CPU使用情况(vmstat)等。因此通过这个命令,可以相对全面的查看系统负载的来源。同时,top命令支持排序,可以按照不同的列排序,方便查找出诸如内存占用最多的进程、CPU占用率最高的进程等。

上一篇下一篇

猜你喜欢

热点阅读