在linux服务器运维和性能异常排查过程中,快速准确读取系统资源压力指标,是定位服务卡顿、响应超时等问题的核心前提。我们可以从核心资源维度出发,通过常用命令获取精准的压力数据,以下是具体的查看方法。

cpu资源压力查看
cpu是最核心的算力资源,排查cpu压力最常用的命令是top和w。执行w或打开top后,最上方的load average会显示1分钟、5分钟、15分钟的系统平均负载,若负载值连续超过服务器cpu核心数,说明算力已经不足以应对当前请求,存在明显过载。top内的us(用户态cpu占比)、sy(内核态cpu占比)两个指标,若us+sy长期高于80%,也说明cpu资源紧张。需要查看多核每个核心的占用情况,可以使用`mpstat -p all 1`命令,输出的每个核心占用数据比top更精准。
内存资源压力查看
查看整体内存状况最常用的是`free -h`命令,该命令会人性化输出总内存、已用内存、可用内存和缓存占用数据。需要注意的是,available列才是系统真正可分配给新进程的可用内存,不要误将buff/cache统计为已占用内存。当available长期低于总内存的10%时,说明内存压力已经很高,严重时会触发系统oom机制强制杀死业务进程。还可以通过vmstat命令查看si(换入)、so(换出)指标,若so长期不为0,说明物理内存不足,系统正在频繁使用交换分区,会导致整体性能骤降。

磁盘与io压力查看
磁盘资源压力包含两部分,一是空间占用,二是io性能。执行`df -h`可以快速查看各挂载点的空间使用率,单分区使用率超过90%时就需要及时清理,否则会出现文件写入失败的问题。排查io压力可以使用`iostat -dx 1`命令,输出中的%util代表磁盘处于忙碌状态的时间占比,若该值长期超过80%说明io已经成为瓶颈;结合await指标来看,若平均io等待时间超过10ms,会明显拖慢数据库、存储类服务的响应速度,还可以用iotop定位占用io最高的进程。
网络资源压力查看
网络资源压力容易被忽略,执行`ss -s`可以统计系统当前总连接数,若连接数接近系统配置的最大连接数上限,说明存在连接耗尽风险,大量新请求会被拒绝。查看带宽占用可以使用iftop,不仅能实时查看进出带宽使用率,还能定位到占用带宽最多的远程ip,方便快速排查异常流量。若带宽长期跑满90%以上,说明网络带宽已经不足,会导致请求延迟升高、丢包等问题。

实际排查中,通常先通过w或top查看系统整体负载,再按维度细分定位,就能快速理清资源压力来源,为性能优化提供准确依据。(全文约768字)



























