在服务器上查看内存使用情况可以帮助你了解系统资源的分配和应用程序的内存消耗。以下是一些常用的方法和工具,以及它们的基础概念、优势、类型、应用场景和解决内存问题的建议。
内存使用情况通常涉及以下几个方面:
free
命令free
命令是最基本的查看内存使用情况的工具。
示例代码:
free -h
输出示例:
total used free shared buff/cache available
Mem: 7.7G 2.1G 1.2G 156M 4.3G 5.2G
Swap: 2.0G 0B 2.0G
优势:
应用场景:
top
命令top
命令提供了一个实时的视图,显示系统中各个进程的资源使用情况。
示例代码:
top
输出示例:
top - 14:30:01 up 1 day, 3:45, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 169 total, 1 running, 168 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7983.4 total, 2144.3 free, 2090.4 used, 3748.7 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 5848.7 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 user 20 0 1234M 123M 123M S 0.0 1.5 0:00.00 application
优势:
应用场景:
ps
命令ps
命令可以用来查看单个或多个进程的内存使用情况。
示例代码:
ps -eo pid,command,%mem,rss
输出示例:
PID COMMAND %MEM RSS
1234 application 1.5 123456
优势:
应用场景:
/proc
文件系统/proc
文件系统提供了内核和进程的详细信息。
示例代码:
cat /proc/meminfo
输出示例:
MemTotal: 8167484 kB
MemFree: 1258448 kB
MemAvailable: 5329152 kB
Buffers: 123456 kB
Cached: 4321024 kB
SwapCached: 0 kB
Active: 234567 kB
Inactive: 123456 kB
Active(anon): 123456 kB
Inactive(anon): 0 kB
Active(file): 111111 kB
Inactive(file): 123456 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 2097152 kB
SwapFree: 2097152 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 123456 kB
Mapped: 123456 kB
Shmem: 0 kB
Slab: 123456 kB
SReclaimable: 123456 kB
SUnreclaim: 123456 kB
KernelStack: 1234 kB
PageTables: 1234 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 6181368 kB
Committed_AS: 123456 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
Percpu: 1234 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 0 kB
DirectMap4k: 123456 kB
DirectMap2M: 123456 kB
DirectMap1G: 123456 kB
优势:
应用场景:
top
或 ps
命令定期检查进程的内存使用情况。通过以上方法和工具,你可以有效地监控和管理服务器的内存使用情况,及时发现并解决内存相关的问题。