新闻中心
新闻中心与新手教程
新闻中心与新手教程
发布时间: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
然后运行:
htophtop 提供了更直观的界面,包括内存和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 sysstatdebian/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互联