linux-kswapd0-cpu負載很高
2022-07-26由 跨越山川 發表于 林業
切肉卷機不卷怎麼辦
## 問題描述
#env
- centos7。x 2c8g
- oracle11g-11。0。4 4g
部署的oracle服務,間歇性的高負載發現有個kswapd0佔用比較高的cpu,導致例項監聽異常進而導致資料庫連線異常。
## 問題解決
#cache/buffer
Cache:快取記憶體,是位於CPU與主記憶體間的一種容量較小但速度很高的儲存器。
Buffer:緩衝區,一個用於儲存速度不同步的裝置或優先順序不同的裝置之間傳輸資料的區域。透過緩衝區,可以使程序之間的相互等待變少,從而使從速度慢的裝置讀入資料時,速度快的裝置的操作程序不發生間斷。
通俗點:
cache是快取記憶體,用於CPU和記憶體之間的緩衝;
buffer是I/O快取,用於記憶體和硬碟的緩衝
#kswapd
kswapd0佔用過高是因為物理記憶體不足,使用swap分割槽與記憶體換頁操作交換資料,導致CPU佔用過高。
解決辦法:
01、禁止swap
02、擴大記憶體
### stop oracle instance
su - oracle
export
ORACLE_SID
=sydb
sqlplus / as sysdba
shutdown immediate //關閉sydb instance
startup //等swap移除後在啟動sydb
>目的釋放出記憶體,方便swap釋放空間遷移到記憶體中
### disable swap
#方法1: 自動解除安裝swap
swapoff -a
vi /etc/fstab
#swap一行註釋
mount -a
#方法2: 解除安裝swap裝置
swapon -s
swapoff /dev/dm-1
vi /etc/fstab
#swap一行註釋
mount -a
#觀察swap釋放的情況
watch
‘free -m’