Linux系统命令-查看内存使⽤情况
⼀、查看内存使⽤情况
在Linux系统中,⼤部分操作都通过命令⾏来完成,因为⼤部分情况下不开启图形界⾯。
在服务器环境,则只能通过shell执⾏操作。
下⾯介绍查看内存使⽤情况的相关命令。 包括物理内存(RAM)和交换内存(swap)。
我们经常需要检查服务器的内存使⽤情况,以及每个进程占⽤的内存,避免发⽣资源短缺进⽽影响⽤户体验。
对于⽹站和Web服务,必须具有⾜够的内存才能处理客户端请求。 如果内存不⾜,在请求⾼峰时就会变得缓慢,拥堵,甚⾄服务崩溃。当然桌⾯系统也是同样的道理。
1. 使⽤free命令
free 命令是Linux系统中最简单和最常⽤的内存查看命令, ⽰例如下:
$ free -m
total used free shared buff/cache available
Mem: 7822 321 324 377 7175 6795
Swap: 4096 0 4095
$ free -h
total used free shared buff/cache available
Mem: 7.6G 322M 324M 377M 7.0G 6.6G
Swap: 4.0G 724K 4.0G
其中, -m 选项是以MB为单位来展⽰内存使⽤信息; -h 选项则是以⼈类(human)可读的单位来展⽰。
上⾯的⽰例中, Mem: 这⼀⾏:
total 表⽰总共有 7822MB 的物理内存(RAM),即7.6G。
used 表⽰物理内存的使⽤量,⼤约是 322M。
free 表⽰空闲内存;
shared 表⽰共享内存?;
buff/cache 表⽰缓存和缓冲内存量; Linux 系统会将很多东西缓存起来以提⾼性能,这部分内存可以在必要时进⾏释放,给其他程序使⽤。
available 表⽰可⽤内存;
输出结果很容易理解。 Swap 这⼀⾏表⽰交换内存,从⽰例中的数字可以看到,基本上没使⽤到交换内存。
2. 查看/proc/meminfo
另⼀种⽅法是读取 /proc/meminfo ⽂件。 我们知道, /proc ⽬录下都是虚拟⽂件,包含内核以及操作系统相关的动态信息。
$ cat /proc/meminfo
MemTotal: 8010408 kB
MemFree: 323424 kB
MemAvailable: 6956280 kB
Buffers: 719620 kB
Cached: 5817644 kB
SwapCached: 132 kB
Active: 5415824 kB
Inactive: 1369528 kB
Active(anon): 385660 kB
Inactive(anon): 249292 kB
Active(file): 5030164 kB
Inactive(file): 1120236 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 4194304 kB
SwapFree: 4193580 kB
Dirty: 60 kB
Writeback: 0 kB
AnonPages: 247888 kB
Mapped: 61728 kB
Shmem: 386864 kB
Slab: 818320 kB
SReclaimable: 788436 kB
SUnreclaim: 29884 kB
KernelStack: 2848 kB
PageTables: 5780 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 8199508 kB
Committed_AS: 942596 kB
VmallocTotal: 34359738367 kB
linux用户系统相关命令VmallocUsed: 22528 kB
VmallocChunk: 34359707388 kB
HardwareCorrupted: 0 kB
AnonHugePages: 88064 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 176000 kB
DirectMap2M: 6115328 kB
DirectMap1G: 4194304 kB
重点关注这些数据:
MemTotal, 总内存
MemFree, 空闲内存
MemAvailable, 可⽤内存
Buffers, 缓冲
Cached, 缓存
SwapTotal, 交换内存
SwapFree, 空闲交换内存
提供的信息和 free 命令看到的差不多。
3. 使⽤vmstat命令
使⽤ vmstat -s 命令和选项, 可以对内存使⽤情况进⾏统计, 类似于 /proc/meminfo。
⽰例如下:
$ vmstat -s
8010408 K total memory
344016 K used memory
5444384 K active memory
1380052 K inactive memory
283468 K free memory
719668 K buffer memory
6663256 K swap cache
4194304 K total swap
724 K used swap
4193580 K free swap
132859985 non-nice user cpu ticks
29816 nice user cpu ticks
37600986 system cpu ticks
6643195204 idle cpu ticks
2721822 IO-wait cpu ticks
0 IRQ cpu ticks
592418 softirq cpu ticks
0 stolen cpu ticks
13092214 pages paged in
293257816 pages paged out
8 pages swapped in
1365 pages swapped out
3396492150 interrupts
1327657196 CPU context switches
1548248091 boot time
8811556 forks
最前⾯的⼏⾏,显⽰了内存总量,使⽤量,以及空闲内存等信息。
4. 使⽤top命令
top 命令⼀般⽤于查看进程的CPU和内存使⽤情况;当然也会报告内存总量,以及内存使⽤情况,所以可⽤来监控物理内存的使⽤情况。在输出信息的顶部展⽰了汇总信息。
⽰例输出:
top - 15:20:30 up 6:57, 5 users, load average: 0.64, 0.44, 0.33
Tasks: 265 total, 1 running, 263 sleeping, 0 stopped, 1 zombie
%Cpu(s): 7.8 us, 2.4 sy, 0.0 ni, 88.9 id, 0.9 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 8167848 total, 6642360 used, 1525488 free, 1026876 buffers
KiB Swap: 1998844 total, 0 used, 1998844 free, 2138148 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2986 enlighte 20 0 584m 42m 26m S 14.3 0.5 0:44.27 yakuake
1305 root 20 0 448m 68m 39m S 5.0 0.9 3:33.98 Xorg
7701 enlighte 20 0 424m 17m 10m S 4.0 0.2 0:00.12 kio_thumbnail
各种操作系统提供的参数略有不同,⼀般来说都可以根据CPU和内存来排序。
例如:
# CentOS
top -o %MEM
top -o %CPU
# mac
top -o mem
top -o cpu
碰到不清楚的,请使⽤ top -h 查看帮助信息。
重点关注顶部的 KiB Mem 和 KiB Swap 这两⾏。 表⽰内存的总量、使⽤量,以及可⽤量。buffer 和 cache 部分,和 free 命令展⽰的差不多。
5. htop命令
与 top 命令类似, 但 htop 还展⽰了其他的各种信息, ⽽且⽀持彩⾊显⽰。
顶部的消息显⽰了CPU使⽤率, 以及RAM和交换内存的使⽤情况。
如果没安装,可以使⽤类似的命令:
yum install htop -y
⼆、查看物理内存信息
想要查看物理内存的硬件信息,可以使⽤ demidecode 命令。
这个命令会输出物理内存相关的信息。
$ dmidecode -t 17
# dmidecode 3.0
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.
Handle 0x1100, DMI type 17, 40 bytes
Memory Device
Array Handle: 0x1000
Error Information Handle: Not Provided
Total Width: Unknown
Data Width: Unknown
Size: 8192 MB
Form Factor: DIMM
Set: None
Locator: DIMM 0
Bank Locator: Not Specified
Type: RAM
Type Detail: Other
Speed: Unknown
Manufacturer: Alibaba Cloud
Serial Number: Not Specified
Asset Tag: Not Specified
Part Number: Not Specified
Rank: Unknown
Configured Clock Speed: Unknown
Minimum Voltage: Unknown
Maximum Voltage: Unknown
Configured Voltage: Unknown
dmidecode -t 17 展⽰的信息包括 内存⼤⼩, 类型,带宽等信息。 当然,因为⽰例中使⽤的是虚拟机,所以有的信息是不可⽤的。
如果不加 -t 参数,则展⽰所有类型的硬件信息。 也可以指定其他 -t 参数来查看对应的硬件信息。
⼩结
本⽂介绍的命令都可以在shell终端上执⾏,不需要图形界⾯来展⽰。
如果使⽤带有图形界⾯的Linux桌⾯系统,则使⽤图形⼯具会更直观。 ⼀般来说图形桌⾯都会提供对应的系统监控⼯具。 输出容易理解的cpu, 物理内存, 交换内存, ⽹络带宽等资源的使⽤信息。
相关链接
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论