看一下我执行完操作后截取的屏幕截图free -m
:http://gyazo.com/aa54d264956e56acb99024e2374de0c0.png?1340387738
我注意到有大量交换内存未被使用,我可以将其转换为可以使用的内存吗?我在这方面有点菜鸟,如果这是一个愚蠢的问题,请原谅。
此外,top
按照谁在使用交换内存以及为什么?我发现它只java
使用了我系统内存的 47.8%。我的 Java 进程正在用于运行游戏,玩家总是延迟。有没有办法增加这个值,这样它就必须使用更多内存,这样我的玩家就不会延迟?
谢谢您的任何回答!
答案1
一般来说,你不应该干涉内核关于使用什么内存和做什么的决定。即使是调优/proc/sys/vm/swapiness
也不推荐,除非你真的知道自己在做什么。聪明的人已经研究过内核的内存管理,你的使用情况其实并没有那么特殊,不需要定制内核。
不使用大量交换是好事,不是坏事。交换非常慢,只能作为最后的手段。如果您的应用程序使用的内存比您预期的少,那是因为应用程序只请求了那么多,而不是因为内核在询问时说“不!”。由于您使用的是 Java,因此您可能需要调整参数-Xmx
。如果应用程序仍然不使用更多内存,那么它根本就无法使用。无论如何,我怀疑增加内存使用量能否解决玩家延迟的问题。