我们有一堆服务器,具有以下configuration:
双核单处理器2GHz,1MBcaching。 交换启用与1GB限制内存 – 2GB操作系统 – RHEL5.3 64位
我们的其中一个闹钟configuration为当可用内存低于256MB持续2小时(连续)或更高时唤醒我们。 我们经常遇到我们的机器内存问题。 只有一个Java服务运行在1GB的限制(使用Xmx标志),其余的内存是供操作系统使用的。 我们观察到很多内存正在分配给缓冲区/caching(高达1GB)。 在这个时候,我有几个问题难以正确回答。
请分享你的想法。
就像我search一样,似乎很难控制操作系统可以分配多less缓冲区/caching。
除非你做了很多很多的testing,否则我build议你不要尝试。 在一般情况下,内核开发者已经做了大量的工作来尽可能地提高效率。 在你知道这是一个问题之前,最好先允许它caching,然后尽可能地caching它,这几乎总是一件好事。
如果Java进程是CPU绑定,那么这将会是一个惊人的限制吗?
取决于你的应用程序,但是如果你在哪里使用超过60%的CPU,我会担心。
如果Java进程是IO绑定,那将会是一个惊人的限制?
取决于您的应用程序,但通常要观看%iowait值。
我们是否应该担心可用内存?
在Linux上只看“空闲内存”几乎是没有用的。 我会更担心,如果缓冲区和caching接近0.我担心,如果你开始使用大量的交换,或者如果你在哪里交换频繁。