新闻中心
新闻中心与新手教程
新闻中心与新手教程
发布时间:2024-10-05 03:19:46
free
命令是查看内存使用情况最快捷的方式。
free -h
示例输出:
total used free shared buff/cache available
mem: 7.7g 4.1g 208m 310m 3.4g 2.9g
swap: 2.0g 1.5m 2.0g
详细解释:
total
: 总物理内存used
: 已使用的内存free
: 完全未使用的内存shared
: 多个进程共享的内存buff/cache
: 用作缓冲区和缓存的内存available
: 可用于启动新应用程序的内存估计值注意:available
不等于 free
。linux会将未使用的内存用作磁盘缓存,这部分内存可以在需要时立即释放给应用程序使用。
top
示例输出(顶部):
top - 14:28:23 up 7 days, 5:29, 2 users, load average: 0.52, 0.58, 0.59
tasks: 231 total, 1 running, 230 sleeping, 0 stopped, 0 zombie
%cpu(s): 2.6 us, 1.0 sy, 0.0 ni, 96.1 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st
mib mem : 7908.8 total, 212.9 free, 4235.5 used, 3460.4 buff/cache
mib swap: 2048.0 total, 2046.5 free, 1.5 used. 3017.0 avail mem
在 top
中:
m
键可以按内存使用率排序q
键退出首先安装 htop:
centos:
sudo yum install epel-release
sudo yum install htop
debian/ubuntu:
sudo apt update
sudo apt install htop
然后运行:
htop
htop
提供了更直观的界面,包括内存和cpu使用的图形表示。你可以使用 f1-f10 功能键进行各种操作。
cat /proc/meminfo
示例输出(部分):
memtotal: 8103424 kb
memfree: 218112 kb
memavailable: 3089344 kb
buffers: 384208 kb
cached: 2710656 kb
swapcached: 192 kb
active: 3340288 kb
inactive: 3105792 kb
...
这个文件提供了最详细的内存使用信息。重要字段解释:
memtotal
: 总物理内存memfree
: 完全空闲的内存memavailable
: 可用于启动新应用的内存估计值buffers
和 cached
: 用作缓冲区和缓存的内存swaptotal
, swapfree
: 交换空间总量和可用量vmstat 5 5
这会每5秒输出一次,共输出5次。
示例输出:
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 218112 393216 3141632 0 0 0 5 1 2 2 1 97 0 0
0 0 0 218112 393216 3141696 0 0 0 18 443 852 1 0 99 0 0
0 0 0 218112 393216 3141696 0 0 0 0 438 848 2 1 97 0 0
重要列解释:
swpd
: 使用的交换空间free
: 空闲内存buff
: 用作缓冲区的内存cache
: 用作缓存的内存si
, so
: 从磁盘交换入内存和从内存交换出到磁盘的数量us
, sy
, id
, wa
: cpu时间分配(用户时间、系统时间、空闲时间、等待i/o时间)查看内存使用最多的前10个进程:
ps aux --sort=-%mem | head -n 11
示例输出:
user pid %cpu %mem vsz rss tty stat start time command
mysql 28830 0.3 24.9 1737504 2001312 ? ssl may07 173:41 /usr/sbin/mysqld
www-data 1253 0.0 5.6 358640 453800 ? s may07 0:16 /usr/sbin/apache2 -k start
www-data 1252 0.0 5.6 358508 453668 ? s may07 0:16 /usr/sbin/apache2 -k start
列解释:
%mem
: 进程使用的物理内存百分比vsz
: 虚拟内存大小(kb)rss
: 常驻集大小,即进程使用的非交换物理内存(kb)首先安装 sysstat:
centos:
sudo yum install sysstat
debian/ubuntu:
sudo apt update
sudo apt install sysstat
然后使用 sar 查看内存使用历史:
sar -r
这会显示今天的内存使用统计。要查看特定日期的数据:
sar -r -f /var/log/sa/sa日期
其中"日期"是两位数的日期(如 01 表示本月1号)。
示例输出:
12:00:01 am kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
12:10:01 am 218112 7885312 97.31 393216 3141632 8539648 84.60 3407872 3178496 36
12:20:01 am 218112 7885312 97.31 393216 3141696 8539648 84.60 3407872 3178560 36
free
命令显示的 available
内存很低(比如少于总内存的 10%),可能表明系统内存压力较大。buff/cache
)使用并不一定是坏事,因为这部分内存可以在需要时快速释放。free
命令显示交换空间使用量很大,而且 vmstat
显示频繁的交换活动(si
和 so
列有持续的非零值),这可能表明系统内存不足。ps
或 top
命令查看哪些进程占用最多内存。sar
命令查看内存使用的长期趋势。如果可用内存持续下降,可能需要考虑增加物理内存或优化应用程序。/var/log/syslog
或 /var/log/messages
)中看到 out of memory (oom) killer 的活动,这表明系统曾经严重缺乏内存,被迫终止了某些进程。记住,内存管理是一个复杂的主题。单一的高内存使用并不一定表示问题,重要的是要综合考虑系统性能、应用需求和用户体验。如果你持续观察到内存压力,可能需要考虑增加物理内存、优化应用程序或调整系统配置。
--------------------------------------------------------
以上是涵盖了在centos、debian和ubuntu服务器上查看和分析内存使用率的多种方法。这个指南不仅包括了每个命令的详细说明,还提供了输出示例和解释,以及如何解读这些信息。
主要内容包括:
free
命令的详细解释top
和 htop
命令的使用方法和输出解读/proc/meminfo
文件的关键信息vmstat
命令进行内存监控ps
命令查看单个进程的内存使用sysstat
包中的 sar
命令进行历史数据分析这个指南不仅告诉您如何获取内存使用数据,还帮助您理解这些数据的含义,以及如何判断是否存在内存问题。
感谢05互联