免费注册 查看新帖 |

Chinaunix

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

系统性能的问题,转到这个版来碰碰运气 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-01-19 12:25 |只看该作者 |倒序浏览
嵌入式版上没有人回答我,来这里碰碰运气:
项目越做越大,机器的内存开始不足,用户开始抱怨系统变慢了,特别是第一次使用机器,或长时间机器在idle状态后。
我们分析是因为system会把代码swap出去或没有完全加载,导致系统会在长时间idle或第一次使用的时候swap进来会很慢,各位大虾有没有相关经验?
怎么处理比较好?

谢谢!

论坛徽章:
0
2 [报告]
发表于 2011-01-19 14:21 |只看该作者
是不是由于系统内存碎片太多造成的???

论坛徽章:
0
3 [报告]
发表于 2011-01-19 15:15 |只看该作者
内存不足的话kernel会开始杀死其他进程来保证系统的稳定.本来就是一件要避免的事情,无非2个选择,要么加内存,要么改进应用程序,减少其对物理内存的需要.

论坛徽章:
0
4 [报告]
发表于 2011-01-20 18:25 |只看该作者
还没坏到kill process的程度,只是会把代码段给swap出去。

论坛徽章:
0
5 [报告]
发表于 2011-01-24 11:47 |只看该作者
从系统层面上是无法解决这个问题的.你的应用程序如果实际占用的内存数超过了物理内存除了增加内存外就没什么更好的办法了.即使没有kill其他进程,但是swap存取速度和内存相差不下100倍. 不过linux内存管理是开空头支票的方式,你可以试试分配完内存只有等到使用时才对这块区域操作,这样可以让物理内存得到最大的使用率.

论坛徽章:
0
6 [报告]
发表于 2011-01-24 22:17 |只看该作者
我找到这么一个链接:
http://rudd-o.com/en/linux-and-f ... and-how-to-fix-that
告诉我可以通过:
sysctl -w vm.swappiness=1
来少cache memory 从而少swap。
但是,我看了我的cached memory,一开始就很大,而且似乎很难让他减少。
在2.6.16以后可以通过:
echo 3 > /proc/sys/vm/drop_caches
来释放cache。

但是现在的问题是我是2.6.11.
sysctl -w vm.swappiness=1
这个是支持的,但是下面一个不支持:
echo 3 > /proc/sys/vm/drop_caches
我无法多释放一些cache,即使内存很紧张的情况下,系统似乎都不太愿意释放cache。总之有些奇怪。

有人能帮到吗?

论坛徽章:
0
7 [报告]
发表于 2011-01-25 07:26 |只看该作者
本帖最后由 id_for_fun 于 2011-01-25 07:28 编辑

顶贴
貌似以前看到说, 权限足够的话, 可以让内存呆在真内存里不出去的。
如果可以的话 找到用户体验最相关的进程,让它待在内存里,看是否可行

论坛徽章:
0
8 [报告]
发表于 2011-01-25 07:47 |只看该作者
呵呵,我也有你那个想法,“如果可以的话 找到用户体验最相关的进程,让它待在内存里,看是否可行”已经试了一下:
尝试过mlockall。 一下子就把我的memory给吃光了,system 开始杀进程了。
也尝试过mlock 代码段,可是没觉得性能变好,反倒变坏了,至少在第一次操作啊的时候,系统一定是在忙于将没有lock的程序尽可能swap。
呵呵,今天开始休假了,不摆弄机器了!休息。
提前祝大家新年快乐!谢谢各位的帮助。

论坛徽章:
0
9 [报告]
发表于 2011-01-25 10:46 |只看该作者
linux的cache和buffer各是什么意思知道吗?去查一下吧.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP