Linux的负载评估:如何测算系统的稳定性和可靠性? (linux 负载 评估)

随着互联网和数据化应用的不断发展,服务器负载的评估成为了极为重要的指标之一。而Linux作为一个流行的服务器操作系统,有丰富的负载评估工具可用。在本文中,我们将探讨如何使用这些工具来测算Linux系统的稳定性和可靠性。

一、负载评估的定义

负载评估是指对一个系统或者服务在特定时间段内的资源限制进行预测。负载评估的目的是为系统管理员提供对系统的负载变化趋势的了解,从而做出相应的调整,以确保系统的稳定性和可靠性。一般来说,负载评估包括以下几个重要指标:

1. CPU利用率

2. 内存利用率

3. 磁盘读写速度

4. 网络带宽

二、负载评估的工具

1. top

top是Linux下最常用的系统负荷监控工具之一。他可以实时展示当前系统的负荷状况。使用top命令,我们可以得到CPU、内存、交换分区和进程等信息。top的运行结果如下:

top – 19:27:24 up 7 days, 19:55, 1 user, load average: 0.21, 0.15, 0.12

Tasks: 288 total, 1 running, 287 sleeping, 0 stopped, 0 zombie

%Cpu(s): 9.1 us, 1.0 sy, 0.1 ni, 89.6 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem : 7867496 total, 554152 free, 1119120 used, 6184224 buff/cache

KiB Swap: 0 total, 0 free, 0 used. 6502208 avl Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

1 root 20 0 191784 6228 4084 S 0.0 0.1 0:04.44 systemd

2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd

2. htop

htop基于top的功能,比top更加精简和方便。htop提供了更加友好和易读的进程使用情况。通过htop,我们可以了解每个进程占用的CPU、内存、网络和IO等资源信息。htop的运行结果如下:

htop – 22:02:11 up 1 day, 2:22, 2 users, load average: 0.00, 0.01, 0.05

Tasks: 225 total, 1 running, 222 sleeping, 0 stopped, 2 zombie

%Cpu(s): 0.2 us, 0.1 sy, 0.0 ni, 99.5 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st

MiB Mem : 15922.4 total, 1258.1 free, 13157.9 used, 1506.4 buff/cache

MiB Swap: 4096.0 total, 3991.0 free, 105.0 used. 2226.3 avl Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

1 root 20 0 225640 11564 6880 S 0.0 0.1 0:01.39 systemd

2 root 20 0 0 0 0 S 0.0 0.0 0:00.04 kthreadd

3. iostat

iostat是用来监控磁盘读写速度的工具。通过iostat,我们可以得到IDLE、IOWT、USER、SYS等指标的详细信息。iostat的运行结果如下:

iostat -x 1 5

avg-cpu: %user %nice %system %iowt %steal %idle

2.34 0.00 0.37 0.11 0.00 97.18

Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz awt r_awt w_awt svctm %util

sda 0.02 0.58 0.08 1.38 0.00 0.01 17.42 0.00 1.92 2.12 1.93 0.79 0.11

sdb 0.00 27.93 0.00 9.89 0.00 0.07 16.57 0.00 0.28 0.00 0.44 0.28 0.28

4. sar

sar 是Linux系统上最常用的性能评估工具之一,可以用来监测服务器的CPU利用率、磁盘IO、网络带宽和内存使用等综合性的负荷情况。sar 的详细使用方法见下:

# 查询平均负载

sar -q 10 5

# 查询CPU使用率

sar -u 10 5

# 查询内存使用率

sar -r 10 5

# 查询磁盘IO

sar -d 10 5

# 查询远程日志

sar -n DEV 10 5

其中 -q 参数用于查询平均负载,-u 用于查询CPU使用率,-r用于查询内存使用率,-d 用于查询磁盘IO,-n DEV 用于查询远程日志。

三、结论

Linux系统的稳定性和可靠性是服务器管理者们十分关注的问题。而负载评估就是评价Linux系统稳定性和可靠性的一个重要工作。通过使用各种工具,如top、htop、iostat和sar等,可以对系统的各种指标进行监测和调整,保证系统的健康运行。此外,本文涉及到的工具和指标还只是对系统负荷监测的基础性工具,除此之外,还有很多专业的系统负荷监测工具可以使用,如nmon、sysstat、collectd等。这些高级工具可以更加全面地监测系统负荷,并帮助管理员快速发现并解决可能出现的问题。

相关问题拓展阅读:

Linux系统CPU/内存使用率过高的问题排查

服务器出现由内存问题引发的故障,例如系统内部服务响应速度变慢、服务器登录不上、系统触发 OOM(Out Of Memory)等。通常情况下当实例内存使用率持续高于90%时,可判断为实例内存使用率过高。CPU/内存使用率过高的问题原因可能由硬件因素、系统进程、业务进程或者木马病毒等因素导致。

    笔者以前写过一篇文章- Linux 下的 60 秒分析的检查清单 ,适用于 任何性能问题 的分析工作,这一篇文章是关于CPU/内存使用率的具体的排查思路总结。

    执行 top 命令后按  M ,根据驻留内存大小进行排序,查看 “RES” 及 “SHR” 列是否有进程占用内存过高。滚液按 P,以 CPU 占用率大小的顺序排列进程列表,查看是否有进程占用cpu过高。

    如果有异常进程占用了大量 CPU 或内存资源,记录需要终止的进程 PID,输入k,再输入需要终止进程的 PID ,按 Enter。

    另外说明一下,top 运行中可以通过 top 的内部命令对进程的显示方式进行控制,最常用的是M和P。

    CPU 空闲但高负载情况,Load average 是 CPU 负载的评估,其值越高,说明其任务队列越长,处于等待执行的任务越多。执行ps -axjf命令,查看进程状态,并检查是否存在 D 状态进程。D 状态指不可中断的睡眠状态,该状态进程无法被杀死,也无法自行退出。若出现较多 D 状态进程,可通过恢复该进程依赖资源或重启系统进行解决。

    Linux 系统通过分页机制管理内存的同时,将磁盘的一部分划出来作为大改物

虚拟内存

。而 kswapd0 是 Linux 系统虚拟内存管理中负责换页的进程。当系统内存不足时,kswapd0 会频繁的进行换页操作。换页操作非常消耗 CPU 资源,导致该进程持续占用高 CPU 资源。

    执行top命令,找到 kswapd0 进程。观察 kswapd0 进程状态,若持续处于非睡眠状态,且运行时间较长并持续占用较高 CPU 资源,执行 vmstat ,free,ps 等指令,查询系统内进程的歼银内存占用情况,重启系统或终止不需要且安全的进程。如果 si,so 的值也比较高,则表示系统存在频繁的换页操作,当前系统的

物理内存

已经不能满足您的需要。  si  表示每秒从交换区写入内存的大小(单位:kb/s) , so  每秒从内存写到交换区的大小。

    执行cat/proc/meminfo |grep-i shmem命令查看

共享内存

buddy可以以页为单位获取连续的物理内存了,即4K为单位。slab负责需要频繁的获取/释放并不大的连续物理内存,比如几十字节。执行cat /proc/meminfo | grep -i SUnreclaim命令查看slab 内存。

标准的 4KB 大小的页面外,内存大页管理内存中的巨大的页面,处理较少的页面映射表,从而减少访问/维护它们的开销。执行cat /proc/meminfo | grep -iE “HugePages_Total|Hugepagesize” 查看内存大页。

内存使用率计算:

 (Total – available)100% / Total

(Total – Free – Buffers – Cached – SReclaimable + Shmem)* 100% / Total

  cat /proc/meminfo查看信息含义:

linux 负载 评估的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux 负载 评估,Linux的负载评估:如何测算系统的稳定性和可靠性?,Linux系统CPU/内存使用率过高的问题排查的信息别忘了在本站进行查找喔。


数据运维技术 » Linux的负载评估:如何测算系统的稳定性和可靠性? (linux 负载 评估)