要查看 Linux 系統(tǒng) swap 使用情況,可使用 free -h 或 swapon --show 命令;設(shè)置 swap 大小時(shí),桌面系統(tǒng)建議為物理內(nèi)存的 50%~100%,服務(wù)器建議為 100%~200%,大內(nèi)存系統(tǒng)可設(shè)為 4~8GB;添加 swap 可通過(guò)創(chuàng)建 swap 文件或分區(qū)實(shí)現(xiàn),步驟包括創(chuàng)建文件、設(shè)置權(quán)限、格式化并啟用,同時(shí)修改 /etc/fstab 以開(kāi)機(jī)自動(dòng)加載;若 swap 使用率過(guò)高,應(yīng)調(diào)整 swappiness 參數(shù)、關(guān)閉不必要的程序或升級(jí)硬件。
Linux 系統(tǒng)中,swap 空間是硬盤(pán)上用來(lái)作為虛擬內(nèi)存的一部分,當(dāng)物理內(nèi)存(RAM)不足時(shí),系統(tǒng)會(huì)將部分?jǐn)?shù)據(jù)轉(zhuǎn)移到 swap 區(qū)域。合理管理 swap 可以提升系統(tǒng)穩(wěn)定性,尤其是在內(nèi)存吃緊的情況下。
如何查看當(dāng)前 swap 使用情況
首先你得知道自己還有多少 swap 可用。最簡(jiǎn)單的辦法是使用 free
命令:
free -h
這個(gè)命令會(huì)顯示當(dāng)前內(nèi)存和 swap 的使用情況,加 -h
是為了讓人更容易看懂單位(比如 G 或 M)。
也可以用 swapon --show
來(lái)列出所有啟用的 swap 分區(qū)或文件。如果你發(fā)現(xiàn) swap 幾乎沒(méi)被使用,那說(shuō)明你的內(nèi)存還夠用;如果經(jīng)常被使用,可能要考慮擴(kuò)容或者優(yōu)化程序內(nèi)存占用。
怎么設(shè)置 swap 大小才合適?
這個(gè)問(wèn)題沒(méi)有統(tǒng)一答案,但有幾個(gè)常見(jiàn)做法可以參考:
- 如果你的系統(tǒng)主要用于桌面或者輕量級(jí)服務(wù),swap 設(shè)置為物理內(nèi)存大小的 50%~100% 就差不多了。
- 對(duì)于運(yùn)行大型應(yīng)用、數(shù)據(jù)庫(kù)或內(nèi)存密集型任務(wù)的服務(wù)器,swap 可以設(shè)為內(nèi)存的 100%~200%,甚至更高。
- 如果你有大量 RAM(比如 32GB 以上),swap 可以稍微少一點(diǎn),比如 4~8GB,主要是為了應(yīng)對(duì)極端情況。
注意:swap 不是用來(lái)“擴(kuò)展”內(nèi)存的工具,它只是臨時(shí)緩沖。頻繁使用 swap 會(huì)導(dǎo)致性能下降,因?yàn)橛脖P(pán)比內(nèi)存慢多了。
如何添加 swap 文件或分區(qū)
如果你發(fā)現(xiàn) swap 不夠用了,可以考慮新增 swap。常用方法有兩種:使用 swap 分區(qū)或 swap 文件。
添加 swap 文件步驟如下:
創(chuàng)建一個(gè)指定大小的文件,例如創(chuàng)建 4G 的 swap 文件:
fallocate -l 4G /swapfile
設(shè)置合適的權(quán)限(只允許 root 讀寫(xiě)):
chmod 600 /swapfile
格式化為 swap:
mkswap /swapfile
啟用這個(gè) swap 文件:
swapon /swapfile
想讓它開(kāi)機(jī)自動(dòng)加載,記得編輯
/etc/fstab
文件,加上這行:/swapfile none swap sw 0 0
這樣就完成了。當(dāng)然,如果你有空余的硬盤(pán)分區(qū),也可以直接格式化為 swap 分區(qū)來(lái)使用。
swap 使用率太高怎么辦?
如果你發(fā)現(xiàn)系統(tǒng)頻繁使用 swap,導(dǎo)致響應(yīng)變慢,可以嘗試以下幾種方式:
調(diào)整
swappiness
參數(shù)。這個(gè)值控制內(nèi)核使用 swap 的傾向,默認(rèn)是 60,數(shù)值越低越傾向于保留內(nèi)存數(shù)據(jù)??梢酝ㄟ^(guò)下面命令臨時(shí)調(diào)整:sysctl vm.swappiness=30
想要永久生效,需要修改
/etc/sysctl.conf
文件。關(guān)閉不必要的后臺(tái)程序或服務(wù),減少內(nèi)存占用。
升級(jí)硬件,增加更多物理內(nèi)存。
如果是云服務(wù)器,可以考慮換配置更高的實(shí)例類型。
基本上就這些。 swap 管理不算復(fù)雜,但容易忽略細(xì)節(jié),比如權(quán)限設(shè)置、開(kāi)機(jī)掛載等。只要平時(shí)多留意系統(tǒng)資源使用情況,就能避免很多問(wèn)題。
? ??? ?? ??? ???? ??? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Stock Market GPT
? ??? ??? ?? AI ?? ?? ??

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

ToremoveAckageUsingyum, usethecommandsudoyumremovepackage_name, whitepackageandpotentiallyinglencientsunideddendencies.beforedoingso, weancecorrectpackagecorrectpackagenamewithyumlistorrrpm-q, checkdenciesviayumdeplist, and checkdeciesviyumdeplist, and and and and wecompackagecorrectpackagecorrecectpackagecevoideviodritscitplist, and and awecorrectpackagecorrectpackagecorrecectpackagevoidevoide

??? ??? ??? ?? ??? ?? ?? ??? ???????. Windows? "Wind Linux ??? ??? ????? Syslog, ???, DMESG ??? ??/var/log/directory? ??? Tail-F ?? JournalCTL-U ??? ?? ???? ? ? ????. Mac? ?? ?? ???? ?? ?? ? ??? ?? ??? ? ? ????. ? ? ?? ? ?? ?? ?????? ???? ?? ??? ? ????? ???? ??? ???? ?? ?? ?????? ???????.

???? ????? ???? ????? ?? ???? ????? ??? ?? ?????? IP? ?? ? ?? ??? ???? ?? ???? ???????. ??? ??? ????. 1. ipnetnsadd? ?? ????? ????. 2. iplinkadd? ?? Vethpair? ??? ?? ?? ?? ????? ??????. 3. ?????? IP? ???? ???????. 4. ?? ???? ???? ??? ?? IP ??? ????? iptablesmasquerade? ???? ?? ??? ??????. 5. ?? ?????? ?? ??? ? ??? ??????. ?? ????? ?? ?? ? ?? ??????? ???????.

??? ???? ?? ???? ?? ? ????? ???? ?? ? ? ????. 1. Windows ???? ?? ???? ???? ??? ???? ?? ??? ?? ? ? ????. 2. handle.exe sysinternals? ?? ??? ???? ??? ??? ??? ??? ???? ??????. 3. Linux/MacOS? LSOF ??? ???? ???? ???? Grep? ???? ?? ? ? ????. 4. ????? ??? ?? ??? ???????. Windows? ?? ??? ?? TaskKill ??? ??? ? ??? Linux/MacOS? ? ??? ???? ??? ??? ????? ??? ??? ? ? ????.

??? ?? ???? ??? ? ??? ????? ?? NTP ???? ???? ????? ???? SystemCTL? ???? NTP ?? Chronyd? ??? ??? ?? ??? ?? ?? ?? ??? ???? ??????. ??, ??? NTP ??? ???? /etc/ntp.conf ?? /etc/chrony/chrony.conf ??? ???? Alibaba Cloud ?? Tencent Cloud? ?? ??? ??? ????? ??? ???? ?? ????. ????? ??? ??? ???? NTPQ-P ?? ChronyCSources? ???? ?? ???????. ???? ?? ??? NTPDATE? ???? ???? ?? ? ? ??? ?? ???? ?? ???? ???? ???? ???????.

????? ??? ???? ???? ??? ?? ??? ????? ????. 1. ?? : ?? ??? ?? ?? (? : /dev /sdb)? ???? ??? ??? ??? ??????. 2TB ??? ?? MSDOS (MBR)? ???? 2TB?? ? ?? GPT? ??????. 2. ??? ??? ??? : ????? ?? ??? ??? ? mklabel ??? ???? GPT ?? MSDOS? ????? ??? ??? ???? ? ???. 3. ?? ??? : MkPart ??? ???? MKPartPrimaryEXT40GB50GB? ?? ??? ??, ?? ??? ? ?? ? ?? ??? ???? ?? ???? ?? ??????. 4. ?? ? ??? ??? : mkfs.ext4 ? ?? ??? ???? ???? ?????.

??? bash ????? ???? ?? ??? ??? ??? ????. ? ?? ?? ??? ??? ????? ???? ??? ? ????. 1. ? ????? #!/bin/bash? ??? ?? chmod x? ?? ?? ??? ?? ? ? ???????. 2. ??? ???? ?? ???? $ variable name ?? $ {variable name}?? ???? ?? ??? ???? ?? ?? ??? ?????. 3. ?? ?????? ?? ? ?? ??? ?? ????? ???? ??, ???? ???? ?? ??? ??? ??? ?????? ??????. 4. ?? ???? ?? ?? ??? ?? ?? -x, ?? ?? ??, ??? ????? ?? ?? ? EXIT0? ???? ??? ?????. ??? ?? ???? ??? ? ??? Bash ????? ???? ????? ? ??????.

??? IO ?? ??? ???? ?? ??? ?? ??? ??? ?? ????????. 1. IOSTAT, IOTOP ? ?? ??? ???? IO ?? ??? ??? ???? %UTIL???? ???? ??? ?????. 2. ?? ???? ??? ????, ?? ?? ?? ? ??? ???, ?? ??? ??? ?????, ?? ?? ??? ??????. 3. IO ??? ????? ?? ext4 ?? XFS? ?? ??? ?? ???? ??????. 4. IO ???? ??? ???? SSD?? Noop ?? Deadline? ???? ??? ?? ????? CFQ? ??????. 5. ??? ??? ??? ?? ?? (? : Redis) ? ??? IO ????? ??????.
