Linux 运行缓慢,仅剩 0 个交换空间

hap*_*s10 5 linux performance process java swap

我们的 Linux 服务器响应非常缓慢。top没有显示任何过多的 CPU 使用率。我注意到即使有大约 5GB 的空闲内存,系统也正在使用所有交换空间,而没有剩余的空闲交换空间。这可能是系统运行缓慢的原因吗?除了减少进程数之外还有什么解决办法吗?

其次,即使有可用内存,为什么 Linux 已经交换了?我认为只有在没有实际内存时才使用交换。

free -m
             total       used       free     shared    buffers     cached
Mem:         32045      26218       5826          0        127        123
-/+ buffers/cache:      25967       6077
Swap:        16387      16387          0
Run Code Online (Sandbox Code Playgroud)

更新:

  • swapiness 处于默认级别:60
  • 我不认为这是一个numa系统
  • 我看到几个运行 8GB 堆的 java 进程: -Xms8000m -Xmx8000m

乍一看似乎很疯狂,但可能有人有这样做的理由。我认为这是占用大部分交换空间的原因,但我需要进一步研究 Java 堆如何影响 Linux 交换和内存/性能。任何有关上述 java 堆配置对系统性能影响的指针都将非常有帮助。

小智 2

使用 8GB 堆初始化了多少个 Java 进程?也许将最大值保持在 8 并降低初始堆大小。如果您有磁盘空间,也可以尝试增加交换大小