在Linux系统中,了解内存使用情况对于系统管理和性能优化非常重要。以下是一些常用的命令,以及它们的详细使用说明:
1. free 命令
 
- 用途: free命令用于显示系统中空闲和已用的物理内存及交换内存。
- 示例: - 输入命令: free -m
- 输出解释: 这将以MB为单位显示内存使用情况。输出包括总计内存、已用内存、空闲内存、共享内存、缓存/缓冲区内存和可用内存。
- 假设你在Ubuntu终端中运行了 free -m命令,你可能会看到类似以下的输出: 这里是每一列数据的解释: 这里是每一列数据的解释:
 
 
- 输入命令: 
                     total: 显示系统总共的物理内存量(MB)。
                      used: 显示已经被使用的内存量(MB)。
                      free: 显示还未被使用的内存量(MB)。
                      shared: 显示多个进程共享的内存总量(MB)。
                      buff/cache: 显示被缓存和缓冲区使用的内存量(MB)。
                      available: 显示可供应用程序使用的内存量(MB),考虑了缓存和缓冲区的内存。
                     在这个例子中,系统总共有3912MB的物理内存。
                      其中1234MB已被使用,1024MB仍然空闲。
                      有1654MB的内存被用作缓存和缓冲区。
                      可用于新应用程序的内存量是2500MB。
2. top 命令
 
 
注意事项
- 用途: top命令提供了一个实时的系统状态动态视图,包括CPU和内存的使用情况。
- 命令格式: top
- 选项: - -d: 指定更新间隔。
- -p: 监控特定的进程ID。
- -u: 显示特定用户的进程。
 
- 当你在终端中运行 top命令时,你会看到类似以下的输出:
-   
 
-  第一行: - 显示当前时间、系统运行时间、登录用户数和系统负载平均值(过去1分钟、5分钟和15分钟)。
 
- 第二行(Tasks): - 显示进程总数、运行中的、睡眠中的、停止的和僵尸进程数。
 
- top命令的输出是实时更新的,可以通过按键进行交互,如按- P按CPU使用率排序,按- M按内存使用率排序。
- 第三行(%Cpu(s)): - 显示CPU使用情况,包括用户空间占用(us)、系统空间占用(sy)和空闲(id)等。
 
- 内存和交换空间行: - 显示物理内存和交换空间的总量、使用量、空闲量和缓冲/缓存量。
 
- 进程列表: - 每行显示一个进程的信息,包括进程ID(PID)、用户(USER)、优先级(PR)、虚拟内存(VIRT)、常驻内存(RES)、共享内存(SHR)、状态(S)、CPU和内存占用比例(%CPU、%MEM)以及运行时间(TIME+)和命令(COMMAND)。
 
3. vmstat 命令
 
- 用途: vmstat(虚拟内存统计)显示关于系统进程、内存、交换、I/O等的信息,vmstat提供了实时系统性能信息。
- 命令格式: vmstat [选项] [延迟 [次数]]
- 常用选项: - 无参数: 显示基本的系统性能统计。
- -s: 显示内存相关的详细统计信息。
- -a: 显示活跃和非活跃内存。
- 1 5: 第一个数字表示每隔多少秒更新一次数据,第二个数字表示更新多少次。
 
- 假设您在终端中运行了 vmstat 1 5,这表示每隔1秒更新一次数据,共更新5次。您可能会看到类似以下的输出:
- procs - r: 等待运行的进程数。
- b: 处于不可中断睡眠状态的进程数。
 
- memory - swpd: 使用的虚拟内存量(KB)。
- free: 空闲的物理内存量(KB)。
- buff: 用作缓冲的内存量(KB)。
- cache: 用作缓存的内存量(KB)。
 
- swap - si: 从磁盘交换到内存的内存量(KB/s)。
- so: 从内存交换到磁盘的内存量(KB/s)。
 
- io - bi: 从块设备接收的块数(块/s)。
- bo: 发送到块设备的块数(块/s)。
 
- system - in: 每秒中断次数,包括时钟中断。
- cs: 每秒上下文切换次数。
 
- cpu(以百分比表示) - us: 用户空间占用的CPU百分比。
- sy: 内核空间占用的CPU百分比。
- id: 空闲的CPU百分比。
- wa: 等待I/O的CPU时间百分比。
- st: 被偷取的时间(在虚拟环境中其他操作系统占用的CPU时间)。
 
注意事项
- vmstat提供的是系统的瞬时状态,连续观察输出可以帮助识别系统的性能瓶颈。
- 如果 si和so的值较高,可能表示系统正在频繁使用交换空间,这可能是内存不足的迹象。
- 高 wa值可能表示I/O性能问题。
通过这种方式,vmstat 命令为你提供了一个实时的、综合的系统状态视图,帮助你监控和诊断Ubuntu系统的性能问题。
4. htop 命令
 
 
使用方法
- htop是一个交互式的进程查看器,是- top命令的增强版,提供了一个更友好的用户界面和更多的功能,包括彩色显示、垂直和水平滚动以及直接操作进程(如杀死进程)。
-  交互式界面: htop提供了一个基于文本的图形界面,比top更易于使用和理解。
-  彩色显示:不同的颜色代表不同类型的信息,如CPU、内存、交换空间使用情况。 
-  易于操作:可以使用键盘快捷键轻松地进行操作,如杀死进程、调整优先级等。 
-  实时更新:进程和资源使用情况实时更新。 
-  自定义视图:用户可以选择要显示的列和排序方式。 
-  树形显示:可以以树状结构显示进程,这有助于查看进程之间的父子关系。 
-  安装:可以使用 sudo apt-get install htop。
-  启动:在终端中输入 htop命令启动。
-  查看进程:打开后,你会看到一个按CPU使用率排序的进程列表。 
-  操作: - 杀死进程:使用 F9键选择要结束的进程。
- 排序:通过 F6选择不同的排序标准。
- 搜索:使用 F3搜索特定进程。
- 过滤:使用 F4过滤进程列表。
 
- 杀死进程:使用 
-  配置:可以通过 F2进入设置菜单,自定义htop的外观和行为。
-  退出:使用 F10或q键退出htop。
-   
- htop需要适当的权限来查看和管理所有进程。在需要时,可以使用- sudo来启动- htop。
- htop对于系统监控和故障排查非常有用,特别是在处理资源密集型的应用或服务时。
5.总结
- 在使用这些命令时,建议定期检查以了解系统的内存使用情况。
- 对于初学者来说,free和top命令是最容易上手的。
- 如果你需要更详细的信息,vmstat和htop提供了更多的数据。
