linux+free内存使用率,Linux free显示高内存使用率但top不显示

在RedHat Linux 6.2上,我正在运行free -m,它显示几乎所有8GB使用的

total used free shared buffers cached

Mem: 7989 7734 254 0 28 7128

-/+ buffers/cache: 578 7411

Swap: 4150 0 4150

但同时在top -M我看不到使用所有这些内存的任何进程:

top - 16:03:34 up 4:10, 2 users, load average: 0.08, 0.04, 0.01

Tasks: 169 total, 1 running, 163 sleeping, 5 stopped, 0 zombie

Cpu(s): 0.7%us, 0.3%sy, 0.0%ni, 98.6%id, 0.4%wa, 0.0%hi, 0.0%si, 0.0%st

Mem: 7989.539M total, 7721.570M used, 267.969M free, 28.633M buffers

Swap: 4150.992M total, 0.000k used, 4150.992M free, 7115.312M cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

1863 sroot 20 0 398m 24m 9.8m S 0.3 0.3 3:12.87 App1

1 sroot 20 0 2864 1392 1180 S 0.0 0.0 0:00.91 init

2 sroot 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd

3 sroot RT 0 0 0 0 S 0.0 0.0 0:00.07 migration/0

4 sroot 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0

5 sroot RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0

6 sroot RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0

7 sroot RT 0 0 0 0 S 0.0 0.0 0:00.08 migration/1

8 sroot RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/1

我也试过这个ps mem脚本,但是它显示了大约400MB的内存被使用.

Linux系统中,SNMP(Simple Network Management Protocol)是一种用于网络设备管理的协议。在使用SNMP监控Linux系统的内存使用率时,可以使用自定义的free命令。 Free命令用于查看系统内存的使用情况,包括总内存、已使用内存、可用内存等。在Linux系统中,可以通过在SNMP配置中使用shell脚本来执行自定义的free命令,并将结果转化为SNMP管理的形式。 首先,在Linux系统中创建一个shell脚本文件,例如mem_usage.sh,并在该文件中编写如下命令: ```shell #!/bin/bash total_mem=$(free -m | awk 'NR==2{print $2}') used_mem=$(free -m | awk 'NR==2{print $3}') free_mem=$(free -m | awk 'NR==2{print $4}') echo "1.3.6.1.4.1.11111.1.1.1.1.1.0" echo "integer" echo $total_mem echo "1.3.6.1.4.1.11111.1.1.1.1.2.0" echo "integer" echo $used_mem echo "1.3.6.1.4.1.11111.1.1.1.1.3.0" echo "integer" echo $free_mem ``` 这个脚本中,我们使用了awk命令来从free命令的输出中提取所需的内存信息,并通过echo命令将结果输出。 然后,通过在SNMP的配置文件中添加以下内容来调用自定义的free命令: ```shell extend mem_usage /path/to/mem_usage.sh ``` 其中,/path/to/mem_usage.sh是你创建的shell脚本文件的路径。 最后,通过SNMP的get命令来获取内存使用率,例如: ```shell snmpget -v3 -u username -a SHA -A password -l authNoPriv localhost SNMPv2-MIB::memUsage.0 ``` 以上命令中,-u指定了SNMP用户的用户名,-a指定了认证算法(这里使用SHA),-A指定了认证算法的密码,-l指定了认证的级别(这里是authNoPriv,只使用认证不使用加密),localhost指定了SNMP代理的地址,SNMPv2-MIB::memUsage.0是SNMP的OID(Object Identifier)表示内存使用率。 通过以上步骤,就可以使用自定义的free命令来监控和获取Linux系统的内存使用率了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值