Centos7内存高|查看占用内存命令

本文介绍了在CentOS7中使用`free`,`top`,和`ps`命令查看内存占用情况的方法,以及如何通过Docker进行实战操作,包括安装、网络配置和资源管理。



Centos7查看磁盘和CUP统计信息iostat命令

Centos7内存高|查看占用内存命令

docker实战(一):centos7 yum安装docker

docker实战(二):基础命令篇

docker实战(三):docker网络模式(超详细)

docker实战(四):docker架构原理

docker实战(五):docker镜像及仓库配置

docker实战(六):docker 网络及数据卷设置

docker实战(七):docker 性质及版本选择

认知升维: 道、法、术、器、势




一:  centos内存高,查看占用内存

1.1: free 命令是

free
单位K
free -m
单位M
free -h 
单位G


  free最常规的查看内存占用情况的命令


1.2:  参数说明

total 总物理内存
used 已经使用的内存
free 没有使用的内存
shared 多进程共享内存
buff/cache 读写缓存内存
available 应用程序可用物理内存 

 二、top命令

top命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令。
退出
top命令也可以用来查内存
输入top命令
按x,高亮排序列,默认应该是%CPU,按CPU占用排序。
按shift+> , 可以看到高亮部分到%MEM,按内存占用排序。
就可以查到具体是哪个进程在占用内存:


三、ps命令

查看内存占用前10位:

[root@www ~]# ps aux | head -1;ps aux |grep -v PID |sort -rn -k +4 | head -10
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mysql      1183 20.1 13.6 2522020 525860 ?      Ssl  11:42  52:13 /usr/local/mysql8/msql-8.0.30/bin/mysqld --defaults-file=/etc/my.cnf
root       1194  0.2  3.8 1017104 150568 ?      Ssl  11:42   0:31 /data/minio_data/minio server --console-address 192.168.1.100:33806 --address 192.168.1.100:9666 /data/minio_data >/data/minio_data/minio-start.log 2>&1 &
root       1196  0.0  0.5 1002932 19924 ?       Ssl  11:42   0:01 /usr/sbin/libvirtd
root       1181  0.0  0.5 574280 19504 ?        Ssl  11:42   0:04 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root        886  0.1  0.2 272008  8504 ?        Sl   11:42   0:20 /usr/sbin/vmtoolsd
root        724  0.0  0.2 474848  8988 ?        Ssl  11:42   0:02 /usr/sbin/NetworkManager --no-daemon
root       1186  0.0  0.2 216400  7944 ?        Ssl  11:42   0:01 /usr/sbin/rsyslogd -n
polkitd     666  0.0  0.2 612232 10076 ?        Ssl  11:42   0:00 /usr/lib/polkit-1/polkitd --no-debug
root        924  0.0  0.1  59484  5980 ?        S    11:42   0:00 /usr/lib/vmware-vgauth/VGAuthService -s
root       3477  0.0  0.1 161804  6120 ?        Ss   15:01   0:00 sshd: root@pts/1


或者:

[root@www ~]# ps aux --sort -rss | head -n 10
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mysql      1183 20.2 13.6 2522020 525860 ?      Ssl  11:42  52:46 /usr/local/mysql8/msql-8.0.30/bin/mysqld --defaults-file=/etc/my.cnf
root       1194  0.2  3.8 1017104 150568 ?      Ssl  11:42   0:31 /data/minio_data/minio server --console-address 192.168.1.100:33806 --address 192.168.1.100:9666 /data/minio_data >/data/minio_data/minio-start.log 2>&1 &
root       1196  0.0  0.5 1002932 19924 ?       Ssl  11:42   0:01 /usr/sbin/libvirtd
root       1181  0.0  0.5 574280 19504 ?        Ssl  11:42   0:04 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
polkitd     666  0.0  0.2 612232 10076 ?        Ssl  11:42   0:00 /usr/lib/polkit-1/polkitd --no-debug
root        724  0.0  0.2 474848  8988 ?        Ssl  11:42   0:02 /usr/sbin/NetworkManager --no-daemon
root        886  0.1  0.2 272008  8504 ?        Sl   11:42   0:20 /usr/sbin/vmtoolsd
root       1186  0.0  0.2 216400  7944 ?        Ssl  11:42   0:01 /usr/sbin/rsyslogd -n
root       3038  0.0  0.1 161804  6120 ?        Ss   14:12   0:00 sshd: root@pts/0


还可以查CPU:
查看CPU占用前10位:

[root@www ~]# ps aux | head -1;ps aux |grep -v PID |sort -rn -k +3 | head -10

或者:

[root@www ~]# ps aux --sort -pcpu | head -n 10
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mysql      1183 20.6 13.6 2522020 525860 ?      Ssl  11:42  54:00 /usr/local/mysql8/msql-8.0.30/bin/mysqld --defaults-file=/etc/my.cnf
root       3623  0.7  0.0      0     0 ?        S    15:08   0:26 [kworker/3:2]
root        419  0.4  0.0      0     0 ?        S<   11:42   1:06 [kworker/3:1H]
root       1194  0.2  3.8 1017104 150568 ?      Ssl  11:42   0:31 /data/minio_data/minio server --console-address 192.168.1.100:33806 --address 192.168.1.100:9666 /data/minio_data >/data/minio_data/minio-start.log 2>&1 &
root        141  0.1  0.0      0     0 ?        S    11:42   0:24 [kworker/6:1]
root        350  0.1  0.0      0     0 ?        S<   11:42   0:19 [kworker/5:1H]
root        351  0.1  0.0      0     0 ?        S<   11:42   0:19 [kworker/6:1H]
root        435  0.1  0.0      0     0 ?        S<   11:42   0:19 [kworker/4:1H]
root        455  0.1  0.0      0     0 ?        S    11:42   0:24 [kworker/4:2]



 


<think> 根据用户查询和系统级指令,用户希望了解在CentOS 7查看内存占用分析的方法。我将结合引用内容,整理出清晰、真实可靠的回答。 首先,引用[1]提到使用free、top、ps等命令查看和管理内存使用情况。引用[3]和[4]详细说明了如何查看内存信息,包括使用free命令的输出含义。引用[2]则涉及系统日志和OOM(内存溢出)情况的排查。引用[5]虽然主要讲服务管理,但侧面印证了系统命令的重要性。 综合这些信息,我计划分步骤介绍: 1. 使用free命令查看总体内存使用情况,重点解释available字段的重要性(引用[4]明确说明available才是真正可用的内存)。 2. 使用top命令动态监控内存和进程,展示按内存排序的方法(引用[3]提到内存和CPU排序)。 3. 使用ps命令查找特定进程的内存占用(引用[1]支持)。 4. 分析系统日志排查OOM事件(引用[2])。 5. 简要说明/proc/meminfo提供更底层的内存数据(补充知识)。 最后生成相关问题时,需围绕内存分析扩展,如优化方法、OOM处理等。 注意所有数学表达式需用$...$格式,但本回答可能较少涉及。需确保引用标识自然添加,例如在解释available字段时引用[4]。 </think> ### CentOS 7 内存占用分析方法 #### 1. **基础内存概览(free命令)** ```bash free -h ``` - **输出解析**: - `total`:物理内存总量 - `used`:已用内存(含缓存) - `free`:完全未使用的内存 - `buff/cache`:缓存占用内存(可回收) - **关键指标**:`available`(实际可用内存,含可回收缓存)[^4] - **内存占用率计算**: $$ \text{内存占用率} = \frac{\text{total} - \text{available}}{\text{total}} \times 100\% $$ 例如:$(941-117)/941 \times 100\% = 87.5\%$[^4] #### 2. **实时进程监控(top命令)** ```bash top ``` - **操作指南**: 1. 按 `Shift+M` 按内存使用排序进程 2. 查看关键列: - `%MEM`:进程内存占比 - `RES`:实际物理内存占用 - `VIRT`:虚拟内存总量 3. 按 `E` 切换内存单位(KB/MB/GB) #### 3. **进程级内存分析(ps命令)** ```bash ps aux --sort=-%mem | head -10 # 列出内存占用前10的进程 ``` - **输出字段**: - `RSS`:常驻内存集(物理内存) - `VSZ`:虚拟内存大小 #### 4. **详细内存统计(/proc/meminfo)** ```bash cat /proc/meminfo ``` - **关键指标**: - `MemTotal`:总物理内存 - `MemFree`:完全空闲内存 - `Buffers`:块设备缓存 - `Cached`:文件缓存 - `SwapCached`:交换区缓存 #### 5. **OOM(内存溢出)排查** ```bash grep "Out of memory" /var/log/messages # 检查OOM日志[^2] dmesg | grep -i oom # 查看内核OOM记录 ``` - **分析重点**:被OOM Killer终止的进程名及时间戳[^2] #### 6. **级工具** - **vmstat**(实时监控): ```bash vmstat -s # 显示内存统计摘要 ``` - **smem**(可视化报告): ```bash smem -p # 以百分比形式显示进程内存 ``` > **优化建议**: > 当`available`接近`free`时,说明系统缓存未有效利用;若`available`持续过低,需检查进程内存泄漏或考虑扩容[^1][^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值