内存性能查看 free
[root@master ~]# free
total used free shared buff/cache available
Mem: 995892 437688 125784 8420 432420 317276
Swap: 2097148 1288 2095860
[root@master ~]# free -m
total used free shared buff/cache available
Mem: 972 427 123 8 422 310
Swap: 2047 1 2046
[root@master ~]# free -g
total used free shared buff/cache available
Mem: 0 0 0 0 0 0
Swap: 1 0 1
[root@master ~]# free -h
total used free shared buff/cache available
Mem: 972M 427M 123M 8.2M 422M 310M
Swap: 2.0G 1.3M 2.0G
total——总物理内存
used——已使用内存,一般情况这个值会比较大,因为这个值包括了cache+应用程序使用的内存
free——完全未被使用的内存
shared——应用程序共享内存
buffers——缓存,主要用于目录方面,inode值等(ls大目录可看到这个值增加)
cached——缓存,用于已打开的文件
清理缓存
a)清理pagecache(页面缓存)
|
|
b)清理dentries(目录缓存)和inodes
|
|
c)清理pagecache、dentries和inodes
|
|
运行sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件
echo 0 是不释放缓存
echo 1 是释放页缓存
ehco 2 是释放dentries和inodes缓存
echo 3 是释放 1 和 2 中说道的的所有缓存
当Linux磁盘被占用找不到占用文件,磁盘空间没释放
lsof | grep deleted(查看被删除的文件,还存在的进程)
使用kill -9 进程号可彻底清理
[root@master ~]# lsof | grep deleted
tuned 1080 root 8u REG 253,0 4096 18016322 /tmp/ffihJnOTu (deleted)
gmain 1080 1574 root 8u REG 253,0 4096 18016322 /tmp/ffihJnOTu (deleted)
tuned 1080 1575 root 8u REG 253,0 4096 18016322 /tmp/ffihJnOTu (deleted)
tuned 1080 1576 root 8u REG 253,0 4096 18016322 /tmp/ffihJnOTu (deleted)
tuned 1080 1600 root 8u REG 253,0 4096 18016322 /tmp/ffihJnOTu (deleted)
gnome-she 1452 gdm 20u REG 253,0 12288 18016323 /tmp/ffi1Wh8Lw (deleted)
gmain 1452 1468 gdm 20u REG 253,0 12288 18016323 /tmp/ffi1Wh8Lw (deleted)
dconf 1452 1469 gdm 20u REG 253,0 12288 18016323 /tmp/ffi1Wh8Lw (deleted)
cpu性能查看top
top - 15:12:36 up 1:04, 1 user, load average: 0.00, 0.03, 0.05
Tasks: 168 total, 1 running, 161 sleeping, 6 stopped, 0 zombie
%Cpu(s): 0.3 us, 1.3 sy, 0.0 ni, 98.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 995892 total, 350004 free, 416832 used, 229056 buff/cache
KiB Swap: 2097148 total, 2095860 free, 1288 used. 345896 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1077 etcd 20 0 10.4g 108260 11096 S 0.7 10.9 0:17.57 /usr/bin/etcd --name=default --data-dir=/var/lib/etcd/default.etcd +
2636 root 20 0 162040 2344 1608 R 0.3 0.2 0:00.16 top
1 root 20 0 128168 6856 4188 S 0.0 0.7 0:03.16 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kthreadd]
3 root 20 0 0 0 0 S 0.0 0.0 0:00.21 [ksoftirqd/0]
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/0:0H]
6 root 20 0 0 0 0 S 0.0 0.0 0:00.16 [kworker/u256:0]
7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 [migration/0]
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [rcu_bh]
9 root 20 0 0 0 0 S 0.0 0.0 0:01.23 [rcu_sched]
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [lru-add-drain]
11 root rt 0 0 0 0 S 0.0 0.0 0:00.03 [watchdog/0]
输入c将实时动态展示使用cpu最高的
输入m将实时动态展示使用Memory最高的
输入q表示推出动态实时。
磁盘性能查看iostat iotop
iostat (iostat用于输出CPU和磁盘I/O相关的统计信息)
[root@master ~]# iostat
Linux 3.10.0-957.21.3.el7.x86_64 (master) 08/25/2019 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.61 0.00 3.37 0.06 0.00 94.96
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 16.26 451.82 25.73 348910 19866
scd0 0.02 1.33 0.00 1028 0
dm-0 13.89 435.51 23.07 336314 17818
dm-1 0.12 3.19 0.00 2460 0
iowait% 表示CPU等待IO时间占整个CPU周期的百分比,如果iowait值超过50%,或者明显大于%system、%user以及%idle,表示IO可能存在问题。
tps: 每秒钟发送到的I/O请求数.
Blk_read /s: 每秒读取的block数.
Blk_wrtn/s: 每秒写入的block数.
Blk_read: 读入的block总数.
Blk_wrtn: 写入的block总数.入门使用
iostat -x 1 1 (每隔一秒进行一次打印输出)
[root@master ~]# iostat -x 1 1
Linux 3.10.0-957.21.3.el7.x86_64 (master) 08/25/2019 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
3.01 0.00 6.34 0.12 0.00 90.53
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.01 0.65 24.25 7.17 874.79 49.62 58.84 0.02 0.66 0.67 0.60 0.47 1.49
scd0 0.00 0.00 0.05 0.00 2.58 0.00 114.22 0.00 1.72 1.72 0.00 1.28 0.01
dm-0 0.00 0.00 19.04 7.81 843.21 44.48 66.12 0.02 0.79 0.82 0.71 0.53 1.43
dm-1 0.00 0.00 0.23 0.00 6.17 0.00 54.67 0.00 0.26 0.26 0.00 0.14 0.00
- 如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
- 如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;
- 如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。
- 如果avgqu-sz比较大,也表示有当量io在等待。
- svctm一项正常时间小于20ms。(svctm的大小和磁盘性能有关,CPU、内存的负荷也会对svctm值造成影响,过多的请求也会间接的导致svctm值的增加)
原因:高速cpu会造成很高的iowait值,但这并不代表磁盘是系统的瓶颈。唯一能说明磁盘是系统瓶颈的方法,就是很高的read/write时间,一般来说超过20ms,就代表了不太正常的磁盘性能。为什么是20ms呢?一般来说,一次读写就是一次寻到+一次旋转延迟+数据传输的时间。由于,现代硬盘数据传输就是几微秒或者几十微秒的事情,远远小于寻道时间2~20ms和旋转延迟4~8ms,所以只计算这两个时间就差不多了,也就是15~20ms。只要大于20ms,就必须考虑是否交给磁盘读写的次数太多,导致磁盘性能降低了。
Device中的dm-0/1/是什么?怎么来的?
sar -d 1
[root@master ~]# sar -d 1
Linux 3.10.0-957.21.3.el7.x86_64 (master) 08/25/2019 _x86_64_ (1 CPU)
02:30:43 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
02:30:44 PM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:30:44 PM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:30:44 PM dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:30:44 PM dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
[root@master ~]# cd /dev/mapper/
[root@master mapper]# ll
total 0
lrwxrwxrwx. 1 root root 7 Aug 25 14:08 centos-root -> ../dm-0
lrwxrwxrwx. 1 root root 7 Aug 25 14:08 centos-swap -> ../dm-1
crw-------. 1 root root 10, 236 Aug 25 14:08 control
[root@master mapper]# cd /dev/centos/
[root@master centos]# ll
total 0
lrwxrwxrwx. 1 root root 7 Aug 25 14:08 root -> ../dm-0
lrwxrwxrwx. 1 root root 7 Aug 25 14:08 swap -> ../dm-1
dm-0、dm-1的主设备号是253(是linux内核留给本地使用的设备号),次设备号分别是0、1这类设备在/dev/mapper中
看到dm-0、dm-1的详细设备名后,知道这二个设备是属于centos逻辑卷组的lvm设备。