Linux下,可使用
free -m
命令查看内存使用情况,也可通过`top
Linux系统中,有多种方法可以查看内存的使用情况,以下是一些常用的命令和工具,以及它们的详细使用方法。
free
命令
free
命令是查看Linux系统内存使用情况的最常用工具之一,它显示了系统的总内存、已用内存、空闲内存以及缓冲区和缓存的内存使用情况。
基本用法:
free
输出示例:
total used free shared buff/cache available
Mem: 16384 3000 5000 200 8384 12000
Swap: 2048 0 2048
选项说明:
-h
:以人类可读的格式显示(如MB、GB)。-m
:以MB为单位显示。-g
:以GB为单位显示。
示例:
free -h
top
命令
top
命令是一个动态的系统监控工具,可以实时查看系统的内存、CPU、进程等使用情况。
基本用法:
top
输出示例:
top 12:34:56 up 1:23, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 75 total, 1 running, 74 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.0 us, 0.5 sy, 0.0 ni, 98.0 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 16384 total, 3000 used, 5000 free, 8384 buffers
KiB Swap: 2048 total, 0 used, 2048 free
选项说明:
-d
:设置刷新间隔时间(默认为5秒)。-n
:指定显示的次数后退出。
示例:
top -d 2 -n 5
htop
命令
htop
是 top
命令的一个增强版,提供了更友好的用户界面和更多的功能,如果系统中没有安装 htop
,可以使用包管理器进行安装。
安装方法:
sudo apt-get install htop # Debian/Ubuntu sudo yum install htop # CentOS/RHEL
基本用法:
htop
输出示例:
[ htop ]
Tasks: 75 total, 1 running, 74 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.0 us, 0.5 sy, 0.0 ni, 98.0 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 16384 total, 3000 used, 5000 free, 8384 buffers
KiB Swap: 2048 total, 0 used, 2048 free
vmstat
命令
vmstat
命令提供了关于系统虚拟内存、进程、CPU等的统计信息。
基本用法:
vmstat
输出示例:
procs -----------memory------------swap------io----system-------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 5000 8384 3000 0 0 0 0 10 20 1 0 98 0 0
选项说明:
-s
:显示一次并退出。-d
:显示磁盘统计信息。-p
:指定进程ID。
示例:
vmstat -s
/proc/meminfo
文件
/proc/meminfo
文件包含了系统内存的详细信息,可以直接查看或使用 cat
命令读取。
基本用法:
cat /proc/meminfo
输出示例:
MemTotal: 16384 kB
MemFree: 5000 kB
Buffers: 8384 kB
Cached: 3000 kB
SwapCached: 0 kB
Active: 3000 kB
Inactive: 2048 kB
...
dmidecode
命令
dmidecode
命令用于查看系统的硬件信息,包括内存模块的详细信息,需要超级用户权限。
基本用法:
sudo dmidecode -t memory
输出示例:
# dmidecode 3.2
SMBIOS 3.0 present.
Handle 0x0038, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0037
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: DIMM
Set: None
Locator: DIMM_A1
Bank Locator: BANK 0
Type: DDR4
Type Detail: Synchronous Unregistered (Unbuffered)
Speed: 2400 MT/s
Manufacturer: Samsung
Serial Number: 12345678
Asset Tag: Not Specified
Part Number: M378A1K43CB2-CTD
Rank: 2
Configured Memory Speed: 2133 MT/s
...
lsblk
和 blkid
命令
虽然这些命令主要用于查看块设备信息,但也可以用来查看内存相关的设备信息。
基本用法:
lsblk -m blkid
输出示例:
NAME SIZE TYPE FSTYPE LABEL UUID MOUNTPOINT
sda 20G disk
├─sda1 1G part ext4 /boot
└─sda2 19G part ext4 /
nvidia-smi
命令(适用于NVIDIA显卡)
如果你的系统配备了NVIDIA显卡,可以使用 nvidia-smi
命令查看GPU内存的使用情况。
基本用法:
nvidia-smi
输出示例:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 45.0.0 Driver Version: 45.0.0 CUDA Version: 11.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Mem-Util |
|===============================+======================+======================|
| 0 GeForce GTX 1080 Off | 00000000:01:00.0 Off | N/A |
| 28% 45C P8 12W / 180W | 123MiB / 8192MiB | 0% 0% |
+-------------------------------+----------------------+----------------------+
zramctl
命令(适用于使用zram的系统)
zramctl
命令用于管理压缩内存(zram),可以查看zram的使用情况。
基本用法:
zramctl
输出示例:
zram device: zram0 (/dev/zram0)
Disk size: 1.0 G
Used: 256 M (25%)
Free: 768 M (75%)
sysctl
命令
sysctl
命令用于查看和修改内核参数,可以用来查看与内存相关的内核参数。
基本用法:
sysctl -a | grep mem
输出示例:
mem = { ... }
vm.min_free_kbytes = 65536
vm.max_map_count = 262144
vm.swappiness = 60
vm.vfs_cache_pressure = 100
小编总结表格
命令 | 用途 | |
---|---|---|
free |
查看内存使用情况 | 总内存、已用内存、空闲内存等 |
top |
实时监控系统资源 | CPU、内存、进程等 |
htop |
top 的增强版 |
CPU、内存、进程等,支持交互操作 |
vmstat |
查看系统虚拟内存统计信息 | CPU、内存、交换区等 |
/proc/meminfo |
查看内存详细信息 | MemTotal、MemFree、Buffers等 |
dmidecode |
查看硬件信息(包括内存) | 内存型号、大小、速度等 |
lsblk |
查看块设备信息 | 设备名称、大小、挂载点等 |
blkid |
查看块设备UUID和文件系统类型 | 设备UUID、文件系统类型等 |
nvidia-smi |
查看NVIDIA显卡内存使用情况 | GPU型号、显存使用情况等 |
zramctl |
查看zram使用情况 | zram设备大小、已用空间、剩余空间等 |
sysctl |
查看和修改内核参数 | 与内存相关的内核参数 |
相关问答FAQs
Q1: free
命令中的buff/cache
是什么意思?
A1: buff/cache
表示的是系统中用于缓存和缓冲的内存,这部分内存可以被快速释放以供其他进程使用,但通常情况下,系统会尽量保留这些缓存以提高性能。buffers
用于存储块设备的临时数据,而cache
用于存储文件系统的缓存数据。
Q2: top
命令中的KiB Mem
和KiB Swap
分别代表什么?
A2: KiB Mem
表示系统的物理内存使用情况,包括总内存、已用内存、空闲内存和缓冲区/缓存的内存。KiB Swap
表示系统的交换分区(swap)使用情况,包括总交换空间、已用交换空间和空闲交换空间。
以上内容就是解答有关linux下如何查看内存的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/10997.html