免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3820 | 回复: 6
打印 上一主题 下一主题

[内存管理] Linux写日志一段时间以后变得非常卡顿 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-05-15 10:07 |只看该作者 |倒序浏览

在Linux上通需要长时间写大量的日志,一开始系统是非常顺畅的,一段时间以后系统会变得非常卡顿,通过ssh连上机器以后去执行的命令速度非常非常慢。
直接在机器上接上显示器,通过free命令查看系统内容情况。
发现可用内存(freed)非常少非常少,cached占用了系统总内存的绝大部分,通过一段时间的观察,这个cached一直在上升没有下降的意思(一直在写日志)。

最后,系统实在是太慢太卡了,只能是重启系统。重启以后一开始也是十分顺畅,当可用内存所剩无几、cached变得很大的时候又非常卡顿。

请问:
cached一直增大时导致系统卡顿的原因吗?如果不是,那么造成系统卡顿的原因可能是什么呢?

说明:
已经单独严重写日志的程序是没有内存泄露的。

论坛徽章:
208
巨蟹座
日期:2013-09-02 09:16:36卯兔
日期:2013-09-02 20:53:59酉鸡
日期:2013-09-05 21:21:45戌狗
日期:2013-10-15 20:51:17寅虎
日期:2013-10-18 21:13:16白羊座
日期:2013-10-23 21:15:19午马
日期:2013-10-25 21:22:48技术图书徽章
日期:2013-11-01 09:11:32双鱼座
日期:2013-11-01 20:29:44丑牛
日期:2013-11-01 20:40:00卯兔
日期:2013-11-11 09:21:32酉鸡
日期:2013-12-04 19:56:39
2 [报告]
发表于 2016-05-16 09:29 |只看该作者
可能是io的问题,你把日志先都写到/dev/null,如果同样时间没问题,估计就是io太慢

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
3 [报告]
发表于 2016-05-16 18:21 |只看该作者
关闭swap试一下。

论坛徽章:
0
4 [报告]
发表于 2016-05-17 10:01 |只看该作者
nswcfd 发表于 2016-05-16 18:21
关闭swap试一下。


free命令看到,swap分区都没有被使用到

论坛徽章:
0
5 [报告]
发表于 2016-05-30 13:44 |只看该作者
试试"echo 3 >/proc/sys/vm/drop_caches "  会不会好点?

评分

参与人数 1可用积分 +2 收起 理由
Godbach + 2 释放 cache 的标准动作 :-)

查看全部评分

论坛徽章:
0
6 [报告]
发表于 2016-05-31 08:16 |只看该作者
zhayun604863141 发表于 2016-05-30 13:44
试试"echo 3 >/proc/sys/vm/drop_caches "  会不会好点?

有用的,但是直接drop cache会不会太暴力了,有些数据可能在cache里面没有write back到硬盘文件的吧

另外一个,如果是在sysctl.conf里面设置vm.drop_caches = 3再sysctl -p的话,好像只生效一次。
每执行一次echo 3 >/proc/sys/vm/drop_caches,cache会下降,可用内存会回升,过一段时间cache有增大了许多
得不断执行echo 3 >/proc/sys/vm/drop_caches

论坛徽章:
0
7 [报告]
发表于 2016-06-28 16:26 |只看该作者
可以尝试修改调大  /proc/sys/vm/vfs_cache_pressure 的值试试

Documentation/sysctl/vm.txt:

vfs_cache_pressure
------------------
Controls the tendency of the kernel to reclaim the memory which is used for
caching of directory and inode objects.

At the default value of vfs_cache_pressure=100 the kernel will attempt to
reclaim dentries and inodes at a "fair" rate with respect to pagecache and
swapcache reclaim.  Decreasing vfs_cache_pressure causes the kernel to prefer
to retain dentry and inode caches. When vfs_cache_pressure=0, the kernel will
never reclaim dentries and inodes due to memory pressure and this can easily
lead to out-of-memory conditions. Increasing vfs_cache_pressure beyond 100
causes the kernel to prefer to reclaim dentries and inodes.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP