内存
磁盘空间
[root@ZT-TEST ~]# df -h
文件系统 容量 已用 可用 已用 % 挂载点
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 402M 3.6G 11% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 95G 10G 86G 11% /
/dev/sda1 1014M 207M 808M 21% /boot
tmpfs 799M 16K 799M 1% /run/user/42
tmpfs 799M 0 799M 0% /run/user/0
运行内存
[root@ZT-TEST ~]# free -g
total used free shared buff/cache available
Mem: 7 0 2 0 4 6
Swap: 3 0 3
[root@ZT-TEST ~]# free -m
total used free shared buff/cache available
Mem: 7982 880 2851 408 4250 6394
Swap: 4095 3 4092
[root@ZT-TEST ~]# free -k
total used free shared buff/cache available
Mem: 8174056 902304 2919436 417952 4352316 6547824
Swap: 4194300 3368 4190932
虚拟内存(swap)
[root@ZT-TEST ~]# vmstat 1 10
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 3368 2919400 4204 4348128 0 0 0 1 0 0 0 0 100 0 0
0 0 3368 2919252 4204 4348128 0 0 0 0 173 240 1 0 99 0 0
0 0 3368 2919220 4204 4348128 0 0 0 0 139 219 1 0 99 0 0
0 0 3368 2919220 4204 4348128 0 0 0 0 121 208 1 0 99 0 0
内存替换设置:
- 查看 swappiness 比例:
[root@ZT-TEST ~]# cat /proc/sys/vm/swappiness
30
- 长期批改 swappiness 比例:
sudo sysctl vm.swappiness=10
- 永恒批改 swappiness 比例:
vim /etc/sysctl.conf
- 敞开 swap:
swapoff -a
- 开启 swap:
swapon -a
瓶颈剖析
命令: vmstat
[root@ZT-TEST ~]# vmstat 1 10
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 3368 2919400 4204 4348128 0 0 0 1 0 0 0 0 100 0 0
0 0 3368 2919252 4204 4348128 0 0 0 0 173 240 1 0 99 0 0
0 0 3368 2919220 4204 4348128 0 0 0 0 139 219 1 0 99 0 0
其中对于 IO 的几个指标解释如下:
- bi:读磁盘的速度,单位 KB/ 秒
- bo:写磁盘的速度
- wa:IO 的工夫
瓶颈剖析:
- wa 并不能反馈磁盘的瓶颈,理论反馈的是 CPU 的 IO 等待时间
- bi+bo 参考值为 1000,如果超过 1000,而且 wa 值比拟大,示意零碎磁盘 IO 存在瓶颈
命令: iostat
[root@ZT-TEST ~]# iostat -x -k -d 1
Linux 3.10.0-957.el7.x86_64 (ZT-TEST) 2021 年 10 月 03 日 _x86_64_ (4 CPU)
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.02 0.00 0.23 0.11 2.22 20.25 0.01 58.40 5.38 59.03 13.86 0.32
dm-0 0.00 0.00 0.00 0.24 0.11 2.21 18.71 0.01 57.77 5.58 58.32 13.01 0.32
dm-1 0.00 0.00 0.00 0.00 0.00 0.00 11.00 0.00 3.65 5.39 2.36 0.65 0.00
###
rrqm/s: 每秒对该设施的读申请被合并次数,文件系统会对读取同块 (block) 的申请进行合并
wrqm/s: 每秒对该设施的写申请被合并次数
r/s: 每秒实现的读次数
w/s: 每秒实现的写次数
rkB/s: 每秒读数据量 (kB 为单位)
wkB/s: 每秒写数据量 (kB 为单位)
avgrq-sz: 均匀每次 IO 操作的数据量 (扇区数为单位)
avgqu-sz: 是均匀申请队列的长度。队列长度越短越好
await: 均匀每次 IO 申请等待时间 (包含等待时间和解决工夫,毫秒为单位)。个别地零碎 IO 响应工夫应该低于 5ms
svctm: 均匀每次 IO 申请的解决工夫 (毫秒为单位)
%util: 1 秒中有百分之多少的工夫用于 I/O 操作。该参数示意了设施的忙碌水平
瓶颈剖析:
- CPU 会拿出一部分工夫来期待 IO(iowait)。如果磁盘的利用率曾经满了(util%),即便 CPU 使用率不高,然而零碎整体 QPS 曾经上不去了,如果持续加大流量,会导致单次 iowait 继续减少(IO 申请都堵在队列里),从而使整体性能塌方
- 高 iowait 并不代表磁盘的瓶颈。惟一能阐明磁盘是零碎瓶颈的办法是很高的 svctm(IO 申请的解决工夫),一般来说超过 20ms,就代表了不太失常的磁盘性能。只有大于 20ms,就必须思考是否磁盘读写的次数太多,导致磁盘性能升高
- svctm 个别要小于 await。svctm 的大小和磁盘性能无关,申请过多也会导致 svctm 的减少。await 的大小个别取决于 svctm 以及 I/O 队列的长度。如果 svctm 靠近 await,阐明 I/O 简直没有等待时间;如果 await 远大于 svctm,阐明 I/O 队列太长,利用的响应工夫变慢,如果响应工夫超过了用户能够答应的范畴,须要思考更换更快的磁盘;调整内核 elevator 算法;优化利用;降级 CPU
浏览器层面
关注白屏工夫 / 首屏工夫
接口层面
- 并发测试
- 负载测试
- SQL 层
服务端层面