我遇到一個與 Oracle HTTP Server(基於 Apache)相關的問題,該伺服器繼續消耗記憶體直至使用所有可用 RAM。
您對如何識別問題有什麼建議嗎?我在Linux Red Hat環境。我知道這個問題有一千個不同的原因,但我不知道該去哪裡找才能理解這個問題。
有沒有辦法檢查記憶體是如何增加的,從何時以及哪些進程消耗了它?如果您需要更多資訊來分析問題,請告訴我,以便我可以將其添加到這篇文章中。
top命令的輸出:
Tasks: 4 total, 1 running, 3 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.5 us, 0.7 sy, 0.0 ni, 98.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 1863252 total, 1016708 free, 269428 used, 575284 buff/cache
Kib Swap: 2097148 total, 2097148 free, 0 used. 1368993 avail Mem
PID user PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND
xxx1 oracle 20 0 114300 2896 1748 S 0.0 0.2 0:00.00 bash
xxx2 oracle 20 0 72852 9324 6600 S 0.0 0.5 0:00.00 opmn
xxx3 oracle 20 0 1092736 19760 10040 S 0.0 1.1 0:01.06 opmn
xxx4 oracle 20 0 159996 2088 1524 R 0.0 0.1 0:01.88 top
可用記憶體繼續緩慢減少並增加已使用記憶體和緩衝/快取。然後,使用的數據到達不會進一步增長的水平,而緩衝區/快取則相反。當可用內存達到過低的水平時,就會使用交換內存,從這裡開始您就會遇到與性能相關的問題。 buff/高速緩衝記憶體始終保持高電位。