ubuntu交換空間設置
租了一年的2核2G的阿里云服務器,隨著安裝的軟件增多(其實也沒裝幾個)發現開始偶爾出現卡頓。
于是查看了一下,發現swap空間是0。才想起來,搞了之后只管用了,都沒做什么配置。
于是乎,先查看下系統情況:
top - 14:37:12 up 22 min, 2 users, load average: 0.00, 0.01, 0.03
Tasks: 195 total, 1 running, 194 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.0 us, 0.3 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1673.0 total, 67.8 free, 1233.7 used, 371.5 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 265.3 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1169 mysql 20 0 1783944 368240 9416 S 0.6 21.5 0:05.31 mysqld
1221 root 20 0 129864 11120 7360 S 0.6 0.6 0:10.16 AliYunDunMonito
913 gwyy23c1 20 0 11.5g 266200 26108 S 0.3 15.5 0:12.71 node-red
1172 root 20 0 95904 9512 8276 S 0.3 0.6 0:05.60 AliYunDun
1291 gdm 20 0 3817332 143512 61740 S 0.3 8.4 0:03.10 gnome-shell
3457 gwyy23c1 20 0 11064 3920 3308 R 0.3 0.2 0:00.07 top
1 root 20 0 166756 11500 7660 S 0.0 0.7 0:01.27 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
5 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 slub_flushwq
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 netns
8 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-events_highpri
10 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq
11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_tasks_rude_
12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_tasks_trace
13 root 20 0 0 0 0 S 0.0 0.0 0:00.04 ksoftirqd/0
14 root 20 0 0 0 0 I 0.0 0.0 0:00.21 rcu_sched
15 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
16 root -51 0 0 0 0 S 0.0 0.0 0:00.00 idle_inject/0
17 root 20 0 0 0 0 I 0.0 0.0 0:00.13 kworker/0:1-events
18 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0
19 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1
20 root -51 0 0 0 0 S 0.0 0.0 0:00.00 idle_inject/1
21 root rt 0 0 0 0 S 0.0 0.0 0:00.05 migration/1
22 root 20 0 0 0 0 S 0.0 0.0 0:00.04 ksoftirqd/1
24 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/1:0H-events_highpri
25 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
26 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 inet_frag_wq
27 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kauditd
29 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khungtaskd
查看發現,cpu使用不多,但內存占用很高。我一直是遠程ssh的,沒想到還有GNOME桌面也在運行。
先關桌面進程。
sudo systemctl stop gdm
再配置交換文件。
創建文件
sudo fallocate -l 16G /swapfile
權限設置
sudo chmod 600 /swapfile
設置交換文件
sudo mkswap /swapfile
啟用交換文件
sudo swapon /swapfile
驗證交換文件是否啟用
$ free -h
total used free shared buff/cache available
Mem: 1.6Gi 1.1Gi 104Mi 11Mi 467Mi 384Mi
Swap: 15Gi 166Mi 15Gi
或者
$ sudo swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 16G 0B -2
編輯配置文件
編輯/etc/fstab文件
sudo nano /etc/fstab
添加內容
/swapfile none swap sw 0 0
重啟系統后,再次檢查,沒問題,說明配置好了。
再調整下交換空間優先級。
打開配置文件
sudo nano /etc/sysctl.conf
增加內容
vm.swappiness=30
vm.vfs_cache_pressure=50
vm.swappiness
作用:
vm.swappiness 參數控制內核將數據從物理內存移動到交換空間(swap)的傾向。它的值范圍是0到100。
該參數決定了內核在內存壓力下如何平衡使用物理內存和交換空間。
值的意義:
0:內核會盡量避免使用交換空間,只有在絕對必要時才會使用。這通常用于需要低延遲的應用,如實時系統或數據庫服務器。
100:內核會積極地將數據移到交換空間,以保持更多的物理內存空閑。這通常用于希望最大化物理內存可用性的系統。
vm.vfs_cache_pressure
作用:
vm.vfs_cache_pressure 參數控制內核釋放緩存頁(特別是文件系統緩存)的壓力。它的值范圍是0到100。
該參數決定了內核在內存不足時如何處理文件系統緩存。
值的意義:
0:內核幾乎不會釋放緩存頁,即使內存壓力很大。這可能會導致內存不足的情況。
100:內核會非常積極地釋放緩存頁,即使內存壓力不是很高。這可能會導致頻繁的磁盤I/O,降低性能。

浙公網安備 33010602011771號