标签:ssi 负载 启动过程 很多 ctr nec idle sar linux系统
【top】
命令可以动态查看当前系统的资源情况,以及占用资源的命令列表
用法:
- ctrl + c / q : 停止此命令运行
- c : 展示完整的命令
- 【top -bn1】:可以不动态的展示当前系统的资源情况
- 【uptime】:第一行的load average可以通过此命令看到
$ uptime 23:51:26 up 21:31, 1 user, load average: 30.02, 26.43, 19.02 #第一个数值: 代表着1分钟的平均负载 #第二个数值:代表着5分钟的平均负载 #第三个数值:代表着15分钟的平均负载 #如果1分钟的平均负载很高,15分钟的很低 ==>系统正在执行高负载命令,大量消耗CPU
【dmesg】 ==> /var/log/dmesg
命令可以快速查看系统启动过程中的内核日志信息,包括:系统设备信息、启动和操作过程中系统记录的任何错误和问题
用法:
- 【dmesg | more】: 打印出来的内容会很多,可以利用more来分页查看
- 【dmesg | tail 】: 打印最后十行的日志
【vmstat 1 5】
命令输出系统核心指标信息,1 5 表示1秒输出5次信息
用法:
- 【r】: 等待CPU资源的进程数,不包括等待IO的进程{数值如果大于CPU核数,就说明机器的CPU资源已经饱和}
- 【free】: 系统可用内存(以K为单位)
- 【si,so】:交换区swap写入和读取的数量,如果数值不等于0,那么机器物理内存已经不足
- 【us,sy,id,wa,st】:分别表示用户时间(user)、系统(内核)时间(sys)、空闲时间(idle)、IO等待时间(wait)和被偷走的时间(stolen,一般被其他虚拟机消耗)。
这里的user + sys 结果特别大 ==》 CPU繁忙于执行命令
wail 很大 ==》 则瓶颈可能在磁盘IO
【mpstat -P ALL 1】
命令可显示CPU的个数,以及每一个CPU被占用的状况,
如果有一个CPU占用率特别高,那么有可能是一个单线程应用程序引起的。
【pidstat 1】
输出进程的CPU占用率{会持续输出,并不会覆盖之前的数据}
从这个命令中可以通过计算某个进程占用CPU的时间来推断占用了多少个CPU资源
【iostat -zx 1】
查看机器磁盘IO情况
用法:
- 【r/s, w/s, rkB/s, wkB/s】: 表示每秒读写次数和每秒读写数据量(KB)==》 这个值表示读写量,读写量过大,会引起性能问题
- 【await】: IO操作的平均等待时间,{单位:ms},此处代表应用程序和磁盘交互时,需要消耗的时间(包括IO等待和实际操作的耗时),这个数值过大,可能是硬件设备遇到了瓶颈或者出现故障
- 【avgqu-sz】: 向设备发出的请求平均量,如果此数值大于1,可能是硬件设备已经饱和(部分前端设备支持并行写入)
- 【%util】:设备利用率,这个数值表示设备的繁忙程度,经验值是如果超过60,可能会影响IO性能(可以参照IO操作平均等待时间)。如果到达100%,说明硬件设备已经饱和。
如果显示的是逻辑设备的数据,那么设备利用率不代表后端实际的硬件设备已经饱和。值得注意的是,即使IO性能不理想,也不一定意味这应用程序性能会不好,可以利用诸如预读取、写缓存等策略提升应用性能。
【sar -n DEV 1】
查看网络设备的吞吐率
这里需要了解网络设备的吞吐量上限,从这里可以判断是否网络设备已经饱和,无法承担更大的访问。
【sar -n TCP,ETCP 1】
查看TCP连接状态
参数:
- active/s:每秒本地发起的TCP连接数,既通过connect调用创建的TCP连接;
- passive/s:每秒远程发起的TCP连接数,即通过accept调用创建的TCP连接;
- retrans/s:每秒TCP重传数量;
TCP连接数可以用来判断性能问题是否由于建立了过多的连接,进一步可以判断是主动发起的连接,还是被动接受的连接。
TCP重传可能是因为网络环境恶劣,或者服务器压力过大导致丢包。
标签:ssi 负载 启动过程 很多 ctr nec idle sar linux系统
原文地址:http://www.cnblogs.com/frankielf0921/p/7666893.html