10.1 使用 w 查看系统负载
执行这项指令可得知目前登入系统的用户有哪些人, 以及他们正在执行的程序.
单独执行 w 指令会显示所有的用户, 您也可指定用户名称, 仅显示某位用户的相关信息.
语法
w [-fhlsuV] [用户名称]
参数说明:
-f 开启或关闭显示用户从何处登入系统.
-h 不显示各栏位的标题信息列.
-l 使用详细格式列表, 此为预设值.
-s 使用简洁格式列表, 不显示用户登入时间, 终端机阶段作业和程序所耗费的 CPU 时间.
-u 忽略执行程序的名称, 以及该程序耗费 CPU 时间的信息.
-V 显示版本信息.
实例
显示当前用户
w// 显示当前用户, 不显示登录位置
19:50:14 up 9:27, 4 users, load average: 0.31, 0.26, 0.18
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty7 :0 Thu12 31:39m 10:10 0.60s gnome-session
root pts/0 :0.0 17:09 2:18m 15.26s 0.15s bash
root pts/1 192.168.1.17 18:51 1.00s 1.24s 0.14s -bash
root pts/2 192.168.1.17 19:48 60.00s 0.05s 0.05s -bash
不显示登录位置
w -f
19:53:59 up 9:31, 4 users, load average: 0.05, 0.16, 0.15
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root tty7 Thu12 31:43m 10:10 0.60s gnome-session
root pts/0 17:09 2:21m 15.26s 0.15s bash
root pts/1 18:51 0.00s 1.04s 0.14s -bash
root pts/2 19:48 4:45 0.05s 0.05s -bash
以精简模式显示
w -s
19:54:37 up 9:31, 4 users, load average: 0.24, 0.19, 0.16
USER TTY FROM IDLE WHAT
root tty7 :0 31:43m gnome-session
root pts/0 :0.0 2:22m bash
- root pts/1 192.168.1.17 0.00s -bash
- root pts/2 192.168.1.17 5:23 -bash
不显示标题
w -h
root tty7 :0 Thu12 31:44m 10:10 0.60s gnome-session
root pts/0 :0.0 17:09 2:23m 15.26s 0.15s bash
root pts/1 192.168.1.17 18:51 0.00s 1.05s 0.14s -bash
root pts/2 192.168.1.17 19:48 5:54 0.05s 0.05s -bash
10.2 vmstat 命令
? vmstat 命令的含义为显示虚拟内存状态("Viryual Memor Statics"), 但是它可以报告关于进程, 内存, I/O 等系统整体运行状态.
? -a: 显示活动内页;
-f: 显示启动后创建的进程总数;
-m: 显示 slab 信息;
-n: 头信息仅显示一次;
-s: 以表格方式显示事件计数器和内存状态;
-d: 报告磁盘状态;
-p: 显示指定的硬盘分区状态;
-S: 输出信息的单位
? vmstat 监控系统状态
? Vmstat 1 每隔 1s 打印一次
Vmstat 1 5 每隔 1s 打印一次, 打印 5 次
- [root@radius ~]# vmstat 1 6
- procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
- 0 0 60408 479876 443120 8139484 0 0 0 49 1 1 0 0 100 0 0
- 0 0 60408 479920 443120 8139488 0 0 0 36 861 1416 0 0 100 0 0
- 0 0 60408 479808 443120 8139488 0 0 0 1600 863 1387 0 0 99 0 0
- 0 0 60408 480316 443120 8139504 0 0 0 40 772 1273 0 1 99 0 0
- 0 0 60408 480084 443120 8139480 0 0 0 364 744 1226 0 0 100 0 0
- 0 0 60408 479712 443120 8139480 0 0 0 28 698 1175 0 0 100 0 0
字段说明:
Procs(进程)
? r: 运行队列中进程数量, 这个值也可以判断是否需要增加 CPU.(长期大于 1)
? b: 等待 IO 的进程数量.
Memory(内存)
? swpd: 使用虚拟内存大小, 如果 swpd 的值不为 0, 但是 SI,SO 的值长期为 0, 这种情况不会影响系统性能.
? free: 空闲物理内存大小.
? buff: 用作缓冲的内存大小.
? cache: 用作缓存的内存大小, 如果 cache 的值大的时候, 说明 cache 处的文件数多, 如果频繁访问到的文件都能被 cache 处, 那么磁盘的读 IO bi 会非常小.
Swap
? si: 每秒从交换区写到内存的大小, 由磁盘调入内存.
? so: 每秒写入交换区的内存大小, 由内存调入磁盘.
注意: 内存够用的时候, 这 2 个值都是 0, 如果这 2 个值长期大于 0 时, 系统性能会受到影响, 磁盘 IO 和 CPU 资源都会被消耗. 有些朋友看到空闲内存 (free) 很少的或接近于 0 时, 就认为内存不够用了, 不能光看这一点, 还要结合 si 和 so, 如果 free 很少, 但是 si 和 so 也很少(大多时候是 0), 那么不用担心, 系统性能这时不会受到影响的.
IO(现在的 Linux 版本块的大小为 1kb)
? bi: 每秒读取的块数
? bo: 每秒写入的块数
注意: 随机磁盘读写的时候, 这 2 个值越大(如超出 1024k), 能看到 CPU 在 IO 等待的值也会越大.
system(系统)
? in: 每秒中断数, 包括时钟中断.
? cs: 每秒上下文切换数.
注意: 上面 2 个值越大, 会看到由内核消耗的 CPU 时间会越大.
CPU(以百分比表示)
? us: 用户进程执行时间百分比(user?time)
us 的值比较高时, 说明用户进程消耗的 CPU 时间多, 但是如果长期超 50% 的使用, 那么我们就该考虑优化程序算法或者进行加速.
? sy: 内核系统进程执行时间百分比(system time)
sy 的值高时, 说明系统内核消耗的 CPU 资源多, 这并不是良性表现, 我们应该检查原因.
? wa: IO 等待时间百分比
wa 的值高时, 说明 IO 等待比较严重, 这可能由于磁盘大量作随机访问造成, 也有可能磁盘出现瓶颈(块操作).
? id: 空闲时间百分比
? 关键的几列: r,b,swpd,si,so,bi,bo,us,wa
10.3 top 命令
top 命令可以实时动态地查看系统的整体运行情况, 是一个综合了多方信息监测系统性能和运行信息的实用工具. 通过 top 命令所提供的互动式界面, 用热键可以管理.
语法
top(选项)
选项
-b: 以批处理模式操作;
-c: 显示完整的治命令;
-d: 屏幕刷新间隔时间;
-I: 忽略失效过程;
-s: 保密模式;
-S: 累积模式;
-i < 时间>: 设置间隔时间;
-u < 用户名>: 指定用户名;
-p < 进程号>: 指定进程;
-n < 次数>: 循环显示的次数.
top 交互命令
在 top 命令执行过程中可以使用的一些交互命令. 这些命令都是单字母的, 如果在命令行中使用了 - s 选项,? 其中一些命令可能会被屏蔽.
h: 显示帮助画面, 给出一些简短的命令总结说明;
k: 终止一个进程;
i: 忽略闲置和僵死进程, 这是一个开关式命令;
q: 退出程序;
r: 重新安排一个进程的优先级别;
S: 切换到累计模式;
s: 改变两次刷新之间的延迟时间(单位为 s), 如果有小数, 就换算成 ms. 输入 0 值则系统将不断刷新, 默认值是 5s;
f 或者 F: 从当前显示中添加或者删除项目;
o 或者 O: 改变显示项目的顺序;
l: 切换显示平均负载和启动时间信息;
m: 切换显示内存信息;
t: 切换显示进程和 CPU 状态信息;
c: 切换显示命令名称和完整命令行;
M: 根据驻留内存大小进行排序;
P: 根据 CPU 使用百分比大小进行排序;
T: 根据时间 / 累计时间进行排序;
w: 将当前设置写入~/.toprc 文件中.
实例
top - 09:44:56 up 16 days, 21:23, 1 user, load average: 9.59, 4.75, 1.92
Tasks: 145 total, 2 running, 143 sleeping, 0 stopped, 0 zombie
Cpu(s): 99.8%us, 0.1%sy, 0.0%ni, 0.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4147888k total, 2493092k used, 1654796k free, 158188k buffers
Swap: 5144568k total, 56k used, 5144512k free, 2013180k cached
解释:
? top - 09:44:56[当前系统时间],
? 16 days[系统已经运行了 16 天],
? 1 user[个用户当前登录],
? load average: 9.59, 4.75, 1.92[系统负载, 即任务队列的平均长度]
? Tasks: 145 total[总进程数],
? 2 running[正在运行的进程数],
? 143 sleeping[睡眠的进程数],
? 0 stopped[停止的进程数],
? 0 zombie[冻结进程数],
? Cpu(s): 99.8%us[用户空间占用 CPU 百分比],
? 0.1%sy[内核空间占用 CPU 百分比],
? 0.0%ni[用户进程空间内改变过优先级的进程占用 CPU 百分比],
? 0.2%id[空闲 CPU 百分比], 0.0%wa[等待输入输出的 CPU 时间百分比],
- ? 0.0%hi[],
- ? 0.0%st[],
? Mem: 4147888k total[物理内存总量],
? 2493092k used[使用的物理内存总量],
? 1654796k free[空闲内存总量],
? 158188k buffers[用作内核缓存的内存量]
? Swap:? 5144568k total[交换区总量],
? 56k used[使用的交换区总量],
? 5144512k free[空闲交换区总量],
? 2013180k cached[缓冲的交换区总量],
10.4 sar 命令
? yum install -y sysstat
? sar -n DEV 网卡流量
? sar -q 系统负
? sar -b 磁盘读写
? sar -f /var/log/sa/saxx 历史文件
Sa 二进制文件只能通过 sar 命令调用查看
Sar 第二天才能看到, 可以 cat 查看
sar 命令是 Linux 下系统运行状态统计工具, 它将指定的操作系统状态计数器显示到标准输出设备. sar 工具将对系统当前的状态进行取样, 然后通过计算数据和比例来表达系统的当前运行状态. 它的特点是可以连续对系统取样, 获得大量的取样数据. 取样数据和分析的结果都可以存入文件, 使用它时消耗的系统资源很小.
语法
sar(选项)(参数)
选项
-A: 显示所有的报告信息;
-b: 显示 I/O 速率;
-B: 显示换页状态;
-c: 显示进程创建活动;
-d: 显示每个块设备的状态;
-e: 设置显示报告的结束时间;
-f: 从指定文件提取报告;
-i: 设状态信息刷新的间隔时间;
-P: 报告每个 CPU 的状态;
-R: 显示内存状态;
-u: 显示 CPU 利用率;
-v: 显示索引节点, 文件和其他内核表的状态;
-w: 显示交换分区状态;
-x: 显示给定进程的状态.
参数
? 间隔时间: 每次报告的间隔时间(秒);
? 次数: 显示报告的次数.
实例
察看内存和交换空间的使用率:
[root@aiker02 ~]# sar -r
Linux 3.10.0-514.26.2.el7.x86_64 (aiker02) 04/26/2018 _x86_64_ (1 CPU)
12:00:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
- 12:10:01 AM 75980 1807744 95.97 142196 1424580 297316 15.78 848388 762212 1204
- 12:20:01 AM 75328 1808396 96.00 142200 1425140 297316 15.78 849252 761948 660
- 12:30:01 AM 74528 1809196 96.04 142200 1425696 297316 15.78 850040 761728 192
- 12:40:01 AM 71752 1811972 96.19 142200 1428412 297316 15.78 850868 763576 1164
- 12:50:01 AM 75308 1808416 96.00 142200 1424864 297316 15.78 843508 767408 772
- 01:00:01 AM 72608 1811116 96.15 142200 1427372 297316 15.78 844344 769108 712
- 01:10:01 AM 71984 1811740 96.18 142200 1427940 297316 15.78 845120 768856 1144
- 01:20:01 AM 71140 1812584 96.22 142204 1428492 297316 15.78 845944 768616 484
- 01:30:01 AM 70456 1813268 96.26 142204 1429048 297316 15.78 846752 768384 848
- 01:40:01 AM 70028 1813696 96.28 142204 1429640 297316 15.78 847552 768112 1192
- 01:50:01 AM 69056 1814668 96.33 142204 1430168 297316 15.78 848360 767856 296
- 02:00:01 AM 68424 1815300 96.37 142208 1430724 297316 15.78 849192 767632 692
- 02:10:01 AM 90376 1793348 95.20 142216 1407568 303348 16.10 828128 768216 1116
- 02:20:01 AM 87560 1796164 95.35 142228 1410176 303348 16.10 829088 769956 360
- 02:30:01 AM 80008 1803716 95.75 142232 1414848 306632 16.28 832644 773748 1092
- 02:40:01 AM 73348 1810376 96.11 142232 1415464 315948 16.77 838908 773512 1028
kbmemfree 与 kbmemused 字段分别显示内存的未使用与已使用空间, 后面跟着的是已使用空间的百分比(%memused 字段).kbbuffers 与 kbcached 字段分别显示缓冲区与系统全域的数据存取量, 单位为 KB.
观察系统部件 10 分钟, 并对数据进行排序:
sar -o temp 60 10
[root@aiker02 ~]# sar -o temp 60 10
Linux 3.10.0-514.26.2.el7.x86_64 (aiker02) 04/26/2018 _x86_64_ (1 CPU)
08:55:11 PM CPU %user %nice %system %iowait %steal %idle
- 08:56:11 PM all 0.43 0.00 0.33 0.07 0.00 99.16
- 08:57:11 PM all 0.40 0.00 0.28 0.07 0.00 99.25
10.5 nload 命令
- yum install -y epel-release
- yum install -y nload
- nload
- Device eth0 [172.18.111.154] (1/2):
- ===================================================================================
- Incoming:
- Curr: 3.66 kBit/s
- Avg: 6.59 kBit/s
- Min: 952.00 Bit/s
- Max: 48.77 kBit/s
- Ttl: 2.13 GByte
- Outgoing:
- Curr: 8.57 kBit/s
- Avg: 14.32 kBit/s
- Min: 4.70 kBit/s
- Max: 52.80 kBit/s
- Ttl: 865.76 MByte
七周一次课
来源: http://www.bubuko.com/infodetail-2576178.html