内存使用
在linux系统上,命令几乎可以做任何事,因为GUI并不总是可用。比如工作在服务器上,你就只能通过远程连接并使用命令来完成该完成的事务。所以今天我们就来谈谈可以在linux系统上检测内存使用情况的命令。这里所说的内存包括 RAM 和 SWAP。
时时检测服务器的内存使用情况和每个进程的所使用的内存总是很重要的,这样可以避免因为内存短缺而导致远程用户无法连接到服务器的问题。比如说你正在运行一个网站,那么web服务器一定要有足够的内存才能服务来访者。如果内存无法满足,就可能导致网站访问速度异常缓慢,甚至可能崩溃。
1、free
free命令可能是最为简单,也是最易于使用的命令了!下面看看效果:
root@twofei:~# free -m total used free shared buffers cached Mem: 488 469 19 42 59 212 -/+ buffers/cache: 197 290 Swap: 0 0 0
选项 m 表示以 兆字节 的方式显示结果。total栏表示安装在系统上的所有内存的大小;used栏表示linux系统当前已经使用了多少内存;free栏表示当前剩余量;shared表示在进程之间已共享的内存量;buffuers和cached是linux系统为提高性能而采取的缓冲区以及缓存措施。
第1行:系统总共有内存488M,真正未使用的有19M,已经使用的+缓冲区+缓存用了469M(包括共享)。
第2行:系统真正正在使用的有197M,剩余290M未使用(这包括:真正未使用的19M + 缓存区59M + 缓存212M)。
第3行:这就是交换分区了,不懂?Google之。
2、/proc/meminfo
另一种检测内存的方式是读取 /proc/meminfo 文件。要明白的是: /proc 文件系统并不包含真正的文件,它们只是包含内核和系统动态信息的一些虚拟文件。
root@twofei:~# cat /proc/meminfo MemTotal: 500192 kB MemFree: 18720 kB Buffers: 61168 kB Cached: 217412 kB SwapCached: 0 kB Active: 251004 kB Inactive: 137696 kB Active(anon): 134240 kB Inactive(anon): 19844 kB Active(file): 116764 kB Inactive(file): 117852 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 4 kB Writeback: 0 kB AnonPages: 110148 kB Mapped: 57144 kB Shmem: 43964 kB Slab: 74888 kB SReclaimable: 62956 kB SUnreclaim: 11932 kB KernelStack: 1432 kB PageTables: 5144 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 250096 kB Committed_AS: 765100 kB VmallocTotal: 34359738367 kB VmallocUsed: 3512 kB VmallocChunk: 34359729996 kB HardwareCorrupted: 0 kB AnonHugePages: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 40960 kB DirectMap2M: 614400 kB
留意一下:MemTotal,MemFree,Buffers,Cached,SwapTotal,SwapFree的值,它们跟前面free命令的结果应该是一样的。
3、vmstat
带 s 选项的 vmstat 命令可以列出与 proc 命令非常类似的内存使用数据。
root@twofei:~# vmstat -s 500192 K total memory 481940 K used memory 251168 K active memory 138020 K inactive memory 18252 K free memory 61456 K buffer memory 217464 K swap cache 0 K total swap 0 K used swap 0 K free swap 317148 non-nice user cpu ticks 599 nice user cpu ticks 296061 system cpu ticks 79095815 idle cpu ticks 37382 IO-wait cpu ticks 264913 IRQ cpu ticks 0 softirq cpu ticks 108455 stolen cpu ticks 1991274 pages paged in 2326328 pages paged out 0 pages swapped in 0 pages swapped out 344055107 interrupts 254547855 CPU context switches 1425967580 boot time 252880 forks
最上面的几行展示了总内存,空闲内存,等等。
4、top
top 命令通常用于检测每个进程的内存和CPU使用情况。但是,它同样也报告了总共内存使用量,并且还可以用于监视RAM的使用情况,因为它会不断地刷新以显示最新信息。
Tasks: 112 total, 1 running, 111 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.2 id, 0.0 wa, 0.8 hi, 0.0 si, 0.0 st KiB Mem: 500192 total, 482416 used, 17776 free, 61544 buffers KiB Swap: 0 total, 0 used, 0 free. 217464 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 24102 root 20 0 103776 4320 3260 S 0.8 0.9 0:00.16 sshd 26360 root 20 0 24924 1580 1120 R 0.8 0.3 0:00.02 top 1 root 20 0 33472 1972 612 S 0.0 0.4 0:01.13 init 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:03.00 ksoftirqd/0
5、htop
htop 命令和 top 差得不是很多,只是结果是 彩色的,而已?
RAM 硬件信息
要了解已安装的RAM的硬件信息,得使用 dmidecode 命令。
root@twofei:~# dmidecode # dmidecode 2.12 SMBIOS 2.4 present. 10 structures occupying 290 bytes. Table at 0x000EB01F. Handle 0x0000, DMI type 0, 24 bytes BIOS Information Vendor: Xen Version: 4.0.1 Release Date: 12/16/2014 Address: 0xE8000 Runtime Size: 96 kB ROM Size: 64 kB Characteristics: PCI is supported EDD is supported Targeted content distribution is supported BIOS Revision: 4.0 Handle 0x0100, DMI type 1, 27 bytes System Information Manufacturer: Xen Product Name: HVM domU Version: 4.0.1 Serial Number: b4684787-71c2-46a1-8fe1-482d7f448e40 UUID: B4684787-71C2-46A1-8FE1-482D7F448E40 Wake-up Type: Power Switch SKU Number: Not Specified Family: Not Specified Handle 0x0300, DMI type 3, 13 bytes Chassis Information Manufacturer: Xen Type: Other Lock: Not Present Version: Not Specified Serial Number: Not Specified Asset Tag: Not Specified Boot-up State: Safe Power Supply State: Safe Thermal State: Safe Security Status: Unknown Handle 0x0401, DMI type 4, 26 bytes Processor Information Socket Designation: CPU 1 Type: Central Processor Family: Other Manufacturer: Intel ID: E4 06 03 00 FF FB 89 17 Version: Not Specified Voltage: Unknown External Clock: Unknown Max Speed: 2600 MHz Current Speed: 2600 MHz Status: Populated, Enabled Upgrade: Other Handle 0x1000, DMI type 16, 15 bytes Physical Memory Array Location: Other Use: System Memory Error Correction Type: Multi-bit ECC Maximum Capacity: 512 MB Error Information Handle: Not Provided Number Of Devices: 1 Handle 0x1100, DMI type 17, 21 bytes Memory Device Array Handle: 0x1000 Error Information Handle: 0x0000 Total Width: 64 bits Data Width: 64 bits Size: 512 MB Form Factor: DIMM Set: None Locator: DIMM 0 Bank Locator: Not Specified Type: RAM Type Detail: None Handle 0x1300, DMI type 19, 15 bytes Memory Array Mapped Address Starting Address: 0x00000000000 Ending Address: 0x0001FFFFFFF Range Size: 512 MB Physical Array Handle: 0x1000 Partition Width: 1 Handle 0x1400, DMI type 20, 19 bytes Memory Device Mapped Address Starting Address: 0x00000000000 Ending Address: 0x0001FFFFFFF Range Size: 512 MB Physical Device Handle: 0x1100 Memory Array Mapped Address Handle: 0x1300 Partition Row Position: 1 Handle 0x2000, DMI type 32, 11 bytes System Boot Information Status: No errors detected Handle 0x7F00, DMI type 127, 4 bytes End Of Table
总结
使用上面提到的命令都是在终端上工作的,都没有GUI。如果使用的是桌面系统,那么,在 gnome 桌面上可以使用 gnonme-system-monitor 工具,在 KDE桌面上则可以使用 ksysguard 工具。它们两者都提供了以图形方式显示CPU、RAM、SWAP、Network的资源使用情况,可以很轻松地了解系统情况。