共计 5422 个字符,预计需要花费 14 分钟才能阅读完成。
系统资源命令
以后零碎负载
w 查看的是整体的负载,能够来察看以后零碎有没有压力
w
第一行显示的内容顺次为:工夫、零碎运行工夫、登录用户数、均匀负载(1 分钟、5 分钟、15 分钟)
第二行后展现的信息为:以后登录的都有哪些用户、在哪里登录的等信息
均匀负载不要高于设施外围数
系统资源查看
vmstat 命令
应用 vmstat 命令能够更加细化 w 命令,来查看具体是哪里的压力
显示内存、分页、块传输和 CPU 流动的相干信息,评估 cpu 性能
#vmstat [刷新延时 刷新次数]
# 应用 vmstat 检测,每 1 秒刷新一次,一共刷新 3 次
vmstat 1 3
<!– more –>
后果信息
procs 过程
- r 期待 cpu 工夫片和运行的过程数,数量越大,零碎越忙碌,如果长期大于服务器 cpu,则阐明 cpu 不够用了
- b 期待资源的过程数,如期待 IO、内存等,数量越大,零碎越忙碌,如果该值长时间大于 1,须要关注一下
memory 内存
- swpd 切换到替换分区的内存大小,单位 kb,如果 swpd 的值不为 0,或者比拟大,只有 si 和 so 的值长期为 0 就不必放心
- free 闲暇的内存容量,单位 kb
- buff buffers cache 的内存容量,行将写入磁盘的,单位 kb,个别对块设施的读写才须要缓冲
- cache page cached 的内存容量,从磁盘中读取的,单位 kb,个别作为文件系统进行缓存,频繁拜访的文件都会被缓存。如果 cache 值比拟大,阐明缓存的文件数较多,如果此时 io 中的 bi 比拟小,阐明文件系统效率比拟好
swap 替换分区,这两个数越大,阐明内存不够用了,内存中的数据频繁替换到替换分区中,对系统性能影响极大
- si 每秒从内存进入替换区的数据的容量
- so 每秒从替换区进入内存的数量
io 磁盘 IO,这两个数越大,代表磁盘 IO 越忙碌。如果 bi+bo 超过 1000,而且 wa 值较大,示意零碎磁盘 IO 有问题
- bi 从块设施读取数据的总量,读磁盘 kb/s
- bo 从块设施写入数据的总量,写磁盘 kb/s
system 零碎信息,显示采集距离内产生的中断次数,这两个数越大,示意零碎与接口设施的通信越忙碌,由内核耗费的 CPU 工夫越多
- in 某一时间距离内观测到的每秒被中断的过程次数
- cs 每秒进行事件切换次数(上下文切换的次数)
cpu CPU 信息,如果 us+sy 大于 80%,阐明可能存在 cpu 资源有余
- us 用户过程耗费 CPU 运算工夫的百分比,如果长期大于 50%,须要思考优化程序
- sy 内核过程耗费 CPU 运算工夫的百分比
- id 闲暇 CPU 的工夫百分比
- wa 期待 IO 所耗费的 CPU 工夫百分比。wa 值越高,阐明 IO 期待越重大。如果 wa 超过 20%,阐明 IO 期待重大,引起 IO 期待的起因可能是磁盘大量随机读写造成的,也可能是磁盘或磁盘控制器的带宽瓶颈造成的
- st 被虚拟机所盗用的 CPU 占比
iostat 命令
显示均匀磁盘流动和处理器负载状况
#iostat [刷新延时 刷新次数]
# 应用 iostat 检测,每 1 秒刷新一次,一共刷新 3 次
iostat 1 3
选项
-d 查看磁盘应用状况
-k 以 KB 为单位显示
-c 显示 CPU 应用状况
-t 打印出统计信息开始执行是啊金
-x device 指定要统计的磁盘设施名称
%user 在用户级别执行
%nice 以 nice 优先形式在用户级别执行
%system 在零碎级别执行(内核过程)
%iowait 期待 IO
%steal 期待虚构过程
%idle 闲暇工夫
tps 每秒解决的 IO 申请数,kB_read/ s 每秒从设施读取的数据量,kB_wrtn/ s 每秒向设施写入的数据量,kB_read 读取的数据总量,kB_wrtn 写入的数据总量
ifstat 命令
网络 io
ifstat
iftop 命令
iftop -ieth1 -nP
- i 设定监测的网卡,如:# iftop -i ens33
-B 以 bytes 为单位显示流量(默认是 bits),如:# iftop -B
- n 使 host 信息默认间接都显示 IP,如:# iftop -n
- N 使端口信息默认间接都显示端口号,如: # iftop -N
- F 显示特定网段的进出流量,如# iftop -F 10.10.1.0/24 或# iftop -F 10.10.1.0/255.255.255.0
-h(display this message),帮忙,显示参数信息
- p 应用这个参数后,两头的列表显示的本地主机信息,呈现了本机以外的 IP 信息;
- b 使流量图形条默认就显示;
- f 这个临时还不太会用,过滤计算包用的;
- P 使 host 信息及端口信息默认就都显示;
- m 设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M
进入 iftop 页面后还能够对页面进行调整,参数如下
按 h 切换是否显示帮忙;
按 n 切换显示本机的 IP 或主机名;
按 s 切换是否显示本机的 host 信息;
按 d 切换是否显示远端指标主机的 host 信息;
按 t 切换显示格局为 2 行 / 1 行 / 只显示发送流量 / 只显示接管流量;
按 N 切换显示端口号或端口服务名称;
按 S 切换是否显示本机的端口信息;
按 D 切换是否显示远端指标主机的端口信息;
按 p 切换是否显示端口信息;
按 P 切换暂停 / 持续显示;
按 b 切换是否显示均匀流量图形条;
按 B 切换计算 2 秒或 10 秒或 40 秒内的均匀流量;
按 T 切换是否显示每个连贯的总流量;
按 l 关上屏幕过滤性能,输出要过滤的字符,比方 ip, 按回车后,屏幕就只显示这个 IP 相干的流量信息;
按 L 切换显示画面上边的刻度; 刻度不同,流量图形条会有变动;
按 j 或按 k 能够向上或向下滚动屏幕显示的连贯记录;
按 1 或 2 或 3 能够依据右侧显示的三列流量数据进行排序;
按 < 依据右边的本机名或 IP 排序;
按 > 依据远端指标主机的主机名或 IP 排序;
按 o 切换是否固定只显示以后的连贯;
按 f 能够编辑过滤代码,这是翻译过去的说法,我还没用过这个!
按! 能够应用 shell 命令,这个没用过!没搞明确啥命令在这好用呢!
按 q 退出监控
pidstat
pidstat 是一个多功能的诊断工具
# 能够监控 cpu
# -p 指定过程 id 每秒钟采样一次,一共采样三次 - u 示意对 cpu 使用率的监控 -t 参数将监控细化到线程级别
pidstat -p 25555 1 3 -u -t
# 也能够监控 io
# -p 指定过程 id 每秒钟采样一次,一共采样三次 - d 示意对 io 的监控 -t 参数将监控细化到线程级别
pidstat -p 25555 1 3 -d -t
# 也能够内存
# -p 指定过程 id 每秒钟采样一次,一共采样三次 - r 示意对内存的监控 -t 参数将监控细化到线程级别
pidstat -p 25555 1 3 -r -t
free 命令
显示内存使用率
free
选项
-m 示意以 MB 为单位显示
-s 每隔几秒更新一次显示
应用 free -h 能够展现为应用 K 或 M 或 G 为单位
第一行是内存信息:total 示意总内存数,used 示意曾经应用的,free 示意闲暇的,shared 示意多个过程共享的,buffers 示意缓冲内存数,cached 示意缓存内存数
第二行是缓冲缓存信息:-/buffers/cache(正在应用的) 相当于 used-buffers-cached,+/buffers/cache(可用的内存) 相当于 free+buffers+cached
如何回收 buff/cache
echo 1 > /proc/sys/vm/drop_caches # 仅革除页面缓存
echo 2 > /proc/sys/vm/drop_caches # 革除目录项和 inode
echo 3 > /proc/sys/vm/drop_caches # 革除页面缓存、目录项以及 inode
第三行是分区信息:total 是 swap 的总数,used 是曾经应用的,free 是闲暇的,当下面提到的 +buffers/cache 示意的可用内存都已应用完,新的读写申请过去后,会把内存中的局部数据写入磁盘,从而把磁盘的局部空间当做虚拟内存来应用
如果 swap 内存应用过多,则阐明物理内存曾经不够用了,操作系统将本应该物理内存存储的一部分内存页调度到磁盘上,以腾出足够的空间给以后的过程应用。当其余过程须要运行时,在从磁盘将内存的页调度到物理内存中,以复原过程的运行。这个调度的过程,则会产生 swap IO,如果 swap IO 较为频繁,会影响零碎的性能,能够应用 vmstat 来查看 swap IO 的状况
能够配合 vmstat 来察看 swap 的 IO 状况
查看 CPU/ 内存信息
在 /proc 文件夹中有 cpuinfo 和 meminfo 能够查看 CPU 和内存信息
uptime 命令
显示零碎运行了多长时间
uptime
# 零碎以后工夫、零碎运行了多长时间、有多少用户正在应用该零碎、零碎每隔 1 分钟、5 分钟、15 分钟的均匀负载
# 16:49:00 up 13 days, 23:15, 2 users, load average: 0.01, 0.04, 0.04
sar 命令
显示系统活动报告,能够全面获取零碎的 CPU、运行队列、磁盘 IO、分页、内存、CPU 中断、网络等性能数据
查看网络运行状态
# sar [options] [-o filename] [interval] [count]
# - n 示意汇报网络情况
# DEV 示意查看各个网卡的网络流量
# 第一个 1 示意每一秒抽样一次,第二个 1 示意总共抽取 1 次
sar -n DEV 1 1
Linux 3.10.0-1160.59.1.el7.x86_64 10/28/2022 _x86_64_ (2 CPU)
11:51:57 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
11:51:58 AM eth0 41.00 43.00 6.95 7.87 0.00 0.00 0.00
11:51:58 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
Average: eth0 41.00 43.00 6.95 7.87 0.00 0.00 0.00
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
# lo 示意本地回环网络,eth0 示意网卡 rxpck/ s 示意每秒接管数据包数量 txpck/ s 示意每秒收回数据包数量 rxkB/ s 示意每秒接管的字节数 txkB/ s 示意每秒收回的字节数 rxcmp/ s 示意每秒收到的压缩包数量 txcmp/ s 示意每秒收回的压缩包数量 rxmcst/ s 示意每秒收到的播送包数量
这里要留神一下,如果 rxpck/ s 数值大于 4000,或者 rxkB/ s 大于 5000 的时候,须要察看一下是否有异样,流量有些高
也能够查看某一天的网卡流量
# sa21 是文件名
sar -n DEV -f /var/log/sa/sa21
查看均匀负载
sar -q 10 3
03:57:28 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
03:57:38 PM 0 1082 0.06 0.13 0.27 0
03:57:48 PM 1 1082 0.05 0.12 0.27 0
03:57:58 PM 0 1082 0.04 0.12 0.26 0
Average: 0 1082 0.05 0.12 0.27 0
runq-sz:运行队列的长度
plist-sz:过程列表中的过程和线程数
ldavg-1:最近 1 分钟的 CPU 均匀负载
ldavg-5:最近 5 分钟的 CPU 均匀负载
ldavg-15:最近 15 分钟的 CPU 均匀负载
查看 CPU 使用率
sar -u 10 3
03:56:33 PM CPU %user %nice %system %iowait %steal %idle
03:56:43 PM all 0.63 0.00 0.23 0.00 0.00 99.15
03:56:53 PM all 0.91 0.00 0.35 0.00 0.00 98.74
03:57:03 PM all 2.03 0.00 0.45 0.03 0.00 97.49
Average: all 1.19 0.00 0.34 0.01 0.00 98.46
查看某个 CPU 运行负载,程序应用了单线程,可能会有整体 CPU 使用率不高,然而某个 CPU 飚满的状况
# CPU 是从 0 开始计数的,1 示意的是第二个 CPU
sar -P 1 3 5
查看零碎磁盘状况
sar -d 3 5
查看内存应用状况
sar -r 3 5
选项
- -A 显示零碎所有资源设施 (CPU、内存、磁盘) 的运行状况
- -u 显示零碎所有 CPU 在采样工夫内的负载状态
- -P 显示以后零碎中指定 CPU 的应用状况
- -d 显示零碎所有硬盘设施在采样工夫内的应用状况
- -r 显示零碎内存在采样工夫内的应用应用状况
- -b 显示缓冲区在采样工夫内的应用状况
- -v 显示过程、文件、节点和锁表状态
- -n 显示网络运行状态。参数后边可跟 DEV、EDEV、SOCK、FULL。DEV 显示网络接口信息;EDEV 显示网络谬误的统计信息;SOCK 显示套接字信息;FULL 显示前三个参数的所有信息
- -q 显示运行队列的大小,与零碎过后的均匀负载雷同
- -R 显示过程在采样工夫内的流动状况
- -y 显示终端设施在采样工夫内的流动状况
- -w 显示零碎替换流动在采样工夫内的状态
- -o filename 示意将命令后果以二进制格局寄存在文件中
- interval 采样工夫距离
- count 采样次数
lsmod 命令
查看已载入零碎的模块,是 list modules 的缩写,其查看的是 /prco/modules 中的内容
lsmod
# 展现的内容,第一列为模块的名称;第二列为模块的大小;第三列为依赖模块的个数,第四列为依赖模块的内容
drm 303102 3 ttm,drm_kms_helper,cirrus
https://zhhll.icu/2021/linux/ 日常治理 / 系统资源命令 /
本文由 mdnice 多平台公布