在CentOS系统中,查看和管理内存使用情况是确保系统稳定运行的重要任务,本文将详细介绍如何在CentOS 7系统中使用各种内存监控工具,如free
、top
、ps
等,并探讨这些工具的常用参数和用法。
查看内存信息的命令
1、free命令:free
命令用于显示系统的物理内存和交换内存的使用情况,其基本语法如下:
free [选项]
常用选项:
b
:以字节为单位显示内存使用情况。
k
:以KB为单位显示内存使用情况(默认)。
m
:以MB为单位显示内存使用情况。
g
:以GB为单位显示内存使用情况。
t
:在输出的最后一行显示总内存使用情况。
s <间隔时间>
:周期性地显示内存使用情况,间隔时间为指定的秒数。
c <次数>
:指定周期性显示内存使用情况的次数。
h
:以人类可读的方式显示内存使用情况,将数字转换为易于理解的单位(GB、MB、KB等)。
示例:
以人类可读的方式显示内存使用情况:
```bash
free h
```
显示总内存使用情况:
```bash
free ht
```
周期性地显示内存使用情况(每5秒显示一次,共显示3次):
```bash
free h s 5 c 3
```
输出解释:
total
:总物理内存。
used
:已经使用的内存。
free
:没有使用的内存。
shared
:多进程共享内存。
buff/cache
:读写缓存内存。
available
:应用程序可用的物理内存。
2、top命令:top
命令是一个实时的系统监视器,可以显示当前系统的各种信息,包括内存使用情况,其基本用法如下:
top [选项]
常用选项:
d seconds
:设置top命令的刷新间隔时间,默认为3秒。
u username
:只显示指定用户名的进程信息。
p pid
:只显示指定进程ID的信息。
n iterations
:设置top命令的循环次数,即显示的次数。
s field
:按指定字段对进程进行排序,默认按CPU使用率排序,可选字段包括pid、user、pr、ni、virt、res、shr、s、%cpu、%mem、time+、time、command等。
o field
:按指定字段对进程进行排序,与s参数不同的是,o参数可同时指定多个字段进行排序。
c
:显示完整的命令行信息。
示例:
默认显示系统资源使用情况:
```bash
top
```
按内存使用量排序进程:
```bash
top o %MEM
```
显示完整的命令行信息:
```bash
top c
```
输出解释:
USER
:进程所有者的用户名。
PID
:进程ID。
%CPU
:进程占用CPU的百分比。
%MEM
:进程占用内存的百分比。
VSZ
:进程占用的虚拟内存大小,单位为KB。
RSS
:进程占用的实际物理内存大小,单位为KB。
TTY
:进程所在的终端。
STAT
:进程状态,包括R(运行)、S(睡眠)、T(停止)、Z(僵尸进程)等。
3、vmstat命令:vmstat
命令用于显示虚拟内存统计信息,包括内存使用情况,其基本用法如下:
vmstat [选项]
常用选项:无常用选项,直接使用即可。
示例:
显示内存使用情况:
```bash
vmstat
```
输出解释:
procs
:系统进程情况,包括运行、等待等。
memory
:内存使用情况,包括总量、空闲、缓冲区和缓存等。
swap
:交换分区使用情况,包括总量、空闲和使用量。
io
:磁盘I/O情况,包括bi(块读入)、bo(块写出)等。
system
:系统调用情况,包括in(中断)、cs(上下文切换)等。
cpu
:CPU使用情况,包括us(用户模式)、sy(系统模式)、id(空闲)、wa(等待IO)等。
4、cat /proc/meminfo命令:cat /proc/meminfo
命令用于查看详细的内存使用信息,其基本用法如下:
cat /proc/meminfo
示例:
查看详细的内存使用信息:
```bash
cat /proc/meminfo
```
输出解释:
MemTotal
:总物理内存。
MemFree
:空闲内存。
Buffers
:缓冲区大小。
Cached
:缓存大小。
SwapTotal
:交换分区总量。
SwapFree
:空闲交换空间。
其他字段提供了关于内存使用情况的详细信息。
管理内存的命令
除了查看内存使用情况外,还可以使用以下命令来管理和优化内存使用:
1、swapon命令:用于启用交换分区,可以将硬盘空间用作虚拟内存,其基本用法如下:
sudo swapon /dev/sdX
/dev/sdX
是要用作交换分区的硬盘分区,可以通过lsblk
或fdisk l
命令查看可用的硬盘分区。
2、swapoff命令:用于禁用交换分区,其基本用法如下:
sudo swapoff /dev/sdX
/dev/sdX
是要禁用的交换分区。
3、sysctl命令:用于设置内核参数,包括内存相关的参数,其基本用法如下:
sudo sysctl w vm.param_name=value
param_name
是要设置的参数名称,value
是要设置的值。
相关问答FAQs
1、问题1:如何查看CentOS系统的总内存和可用内存?
答案1:可以使用free h
命令查看系统的总内存和可用内存,该命令将以人类可读的方式显示内存使用情况,包括总内存、已使用内存、可用内存和缓存/缓冲区。
2、问题2:如何查看CentOS系统中各个进程的内存使用情况?
答案2:可以使用top
命令查看系统中各个进程的内存使用情况,按下"M"键后,top
命令将按内存使用量排序进程,可以查看每个进程使用的内存量以及系统总体的内存使用情况,也可以使用ps
命令结合awk
、sort
等命令来筛选和排序进程的内存使用情况。