Linux查看协议栈缓冲区使用,跟踪Linux下的大量缓冲区使用情况

我有一台在Debian Lenny下运行的Linux服务器,带有4Go内存.

它运行不多,只是:

> Postfix / spamassassin(守护进程模式)

> Bind9

> KVM(一个客人 – 1个RAM的RAM)

每天正好在UTC时间3:05,服务器几乎完全落到了底层的所有内存.之后,我有超过2G的缓冲区使用并且从未清理过(除非我手动告诉内核删除缓存).

我在网上搜索了很多,在开始时,我虽然这是由于NFS缓冲区的使用.我使用gzip / tar在NFS共享驱动器上进行备份,备份发生在3:05.

但是,我现在处于一个非常奇怪的情况,因为我在1:40移动了备份任务(它在2分钟内完成)并且我仍然在3:05丢弃所有RAM.

在我的日志中,没有什么特别的,除了在03:05:01,cron以root身份打开会话并立即在03:05:02关闭它而不做任何事情.当然,cron已经重新启动,我检查了任务的时间 – 再次,没有什么特别的.

知道为什么会这样吗?或者,如何跟踪使用所有缓冲区的内容?

编辑:服务器以UTC格式运行,此处所有时间均为UTC.它没有运行任何NFS服务器,我没有安装mlocate或slocate.对于crontab,每日和用户crontabs,在那个小时什么也没做.

这是关于cron的日志中有趣的部分:

auth.log-20110501:May 1 03:05:01 SRV CRON[15914]: pam_unix(cron:session): session opened for user root by (uid=0)

auth.log-20110501:May 1 03:05:01 SRV CRON[15914]: pam_unix(cron:session): session closed for user root

syslog-20110501:May 1 03:05:01 SRV /USR/SBIN/CRON[15915]: (root) CMD ([ -x /usr/lib/sysstat/sa1 ] && { [ -r “$DEFAULT” ] && . “$DEFAULT” ; [ “$ENABLED” = “true” ] && exec /usr/lib/sysstat/sa1 $SA1_OPTIONS 1 1 ; })

解决方法:

您的服务器是否以UTC格式运行?大多数会在当地时区运行,我猜你的是UTC 1(MET或CET).我问,因为我们需要知道crontab中使用了什么时区,例如也许3.05在crontab中没有被称为3.05.

执行大量磁盘访问的常见任务包括makewhatis / man-db和slocate / mlocate.仔细检查它们是否在3.05附近运行,例如看看/ etc / crontab和/etc/cron.daily.检查/ var / spool / cron中的用户cron选项卡.

有两种方法我可以想到在没有cron日志的情况下弄清楚3.05的运行情况.

第一个是auditctl,使用起来有点痛苦.

根据手册页,我会尝试类似于:

$sudo auditctl -a entry,always -S open -S creat \

-S read -S readv -S write -S writev -S sendfile \

-S fork -S clone -S execve -k 305

然后设置审计

$sudo aureport -s -i -ts 03:04 -te 03:06

当您在3.05之后登录系统时检查发生了什么.

第二个是简单的ps.只需编写一个脚本来运行ps几次,并安排它运行在3.04.

ps的许多方面在这里都很有用,例如,wchan和status字段可以查看正在执行I / O和pcpu的进程,以查看当时哪些进程使用的CPU最多.当然,任何未在3.04.59列表中出现但确实出现在3.05.01或之后不久的过程也是一个明显的嫌疑人.

标签:linux,memory,nfs

来源: https://codeday.me/bug/20190812/1642767.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值