關於swap分割槽使用

2021-10-02 02:23:16 字數 1796 閱讀 6845

swap分割槽在系統記憶體不足時,會使用swap來存放記憶體中暫不用的資料,這能緩解記憶體不足,但是由於我們swap分割槽畢竟是硬碟,比起記憶體的速度差了幾個量級,也就會導致程式變慢。

其實也就是統計proc下pid裡smaps檔案中swap項的總和,

#!/bin/bash

function statswap '

` do

((sum=$sum+$size))

done[[

$sum -gt 0 ]]&&

printf

"pid=%-7s swap used: %-8s kbytes (%-10s)\n"

$pid

$sum

$name

done

}statswap

也可以增加個排序,

[root@centos-7-2 /home]

# sh statswap.sh | sort -k4nr

pid=948 swap used: 17652 kbytes (containerd)

pid=1386 swap used: 940 kbytes (mysqld )

pid=921 swap used: 868 kbytes (sshd )

pid=1167 swap used: 288 kbytes (mysqld_safe)

pid=1 swap used: 144 kbytes (systemd )

pid=616 swap used: 16 kbytes (modemmanager)

當然也可以不用指令碼,直接用一行命令也是可以的,for迴圈配合awk使用,

[root@localhost ~]

# for pid in `ls /proc/ | grep "^[0-9].*"`;do awk 'begin/swap/end' /proc/$pid/smaps 2>/dev/null;done | sort -k4nr

pid=12444 swap used: 1178888 kbytes

pid=15046 swap used: 1168772 kbytes

pid=12615 swap used: 1148220 kbytes

pid=17448 swap used: 654376 kbytes

pid=32457 swap used: 227580 kbytes

pid=32458 swap used: 227580 kbytes

pid=32456 swap used: 184832 kbytes

有兩個方法,乙個是關閉swap分割槽,但是要保證記憶體餘量夠,不然就oom了,

swapoff -a

swapon -a

另乙個是重啟對應程序了。

the value in this file controls how aggressively the kernel will swap

memory pages. higher values increase aggressiveness, lower values

decrease aggressiveness. the default value is 60.

如果我們記憶體足夠,就可以將該值設定為0,這樣核心就盡可能不去使用swap分割槽,避免程式進入swap分割槽後效能下降。

Linux 使用swap分割槽

這條命令從硬碟裡分出乙個 2 1g 大小的空間,掛在swapfile上。構建swap格式於 usr swap swapfile 上 啟用swapfile 加入到swap分割槽中。以上操作在重啟系統後swap空間將會失去swapfile 將swapfile 加入到 etc fstab 條目將可以使得系...

分割槽 swap分割槽

what?將乙個硬碟驅動器,劃分為若干個邏輯上的驅動器。一般來說,分割槽和 boot分割槽的是必要,swap分割槽的重要的,使用者分割槽是可要的。why?多年前我們就習慣將硬碟分割槽,但是那時候和現在分割槽的理由或不相同。總之分割槽的理由或者說好處,大概有這些。檔案系統限制最大硬碟容量,如00年前後...

使用檔案做swap分割槽

root zabbixserver fallocate l 2g etc swap 指定檔案為2g root zabbixserver ls lt etc swap rw r r 1 root root 2147483648 feb 26 22 51 etc swap root zabbixserv...