久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Linux系統安裝中Swap分區有什么用

176次閱讀
沒有評論

共計 3653 個字符,預計需要花費 10 分鐘才能閱讀完成。

丸趣 TV 小編給大家分享一下 Linux 系統安裝中 Swap 分區有什么用,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

Swap 分區,即交換區,Swap 空間的作用可簡單描述為:當系統的物理內存不夠用的時候,就需要將物理內存中的一部分空間釋放出來,以供當前運行 的程序使用。那些被釋放的空間可能來自一些很長時間沒有什么操作的程序,這些被釋放的空間被臨時保存到 Swap 空間中,等到那些程序要運行時,再從 Swap 中恢復保存的數據到內存中。這樣,系統總是在物理內存不夠時,才進行 Swap 交換。其實,Swap 的調整對 Linux 服務器,特別是 Web 服務器 的性能至關重要。通過調整 Swap,有時可以越過系統性能瓶頸,節省系統升級費用。

眾所周知,現代操作系統都實現了“虛擬內存”這一技術,不但在功能上突破了物理內存的限制,使程序可以操縱大于實際物理內存的空間,更重要的是,“虛擬內存”是隔離每個進程的安全保護網,使每個進程都不受其它程序的干擾。

計算機用戶會經常遇這種現象。例如,在使用 Windows 系統時,可以同時運行多個程序,當你切換到一個很長時間沒有理會的程序時,會聽到硬盤“嘩嘩”直響。這是因為這個程序的內存被那些頻繁運行的程序給“偷走”了,放到了 Swap 區中。因此,一旦此程序被放置到前端,它就會從 Swap 區取回自己的數 據,將其放進內存,然后接著運行。

需要說明一點,并不是所有從物理內存中交換出來的數據都會被放到 Swap 中 (如果這樣的話,Swap 就會不堪重負),有相當一部分數據被直接交換到文件 系統。例如,有的程序會打開一些文件,對文件進行讀寫(其實每個程序都至少要打開一個文件,那就是運行程序本身),當需要將這些程序的內存空間交換出去 時,就沒有必要將文件部分的數據放到 Swap 空間中了,而可以直接將其放到文件里去。如果是讀文件操作,那么內存數據被直接釋放,不需要交換出來,因為下 次需要時,可直接從文件系統恢復;如果是寫文件,只需要將變化的數據保存到文件中,以便恢復。但是那些用 malloc 和 new 函數生成的對象的數據則不 同,它們需要 Swap 空間,因為它們在文件系統中沒有相應的“儲備”文件,因此被稱作“匿名”(Anonymous) 內存數據。這類數據還包括堆棧中的一 些狀態和變量數據等。所以說,Swap 空間是“匿名”數據的交換空間。

突破 128M Swap 限制

經常看到有些 Linux(國內漢化版)安裝手冊上有這樣的說明:Swap 空間不能超過 128M。為什么會有這種說法?在說明“128M”這個數字的來歷之前,先給問題一個回答:現在根本不存在 128M 的限制!現在的限制是 2G!

Swap 空間是分頁的,每一頁的大小和內存頁的大小一樣,方便 Swap 空間和內存之間的數據交換。舊版本的 Linux 實現 Swap 空間時,用 Swap 空 間的 *** 頁作為所有 Swap 空間頁的一個“位映射”(Bit map)。這就是說 *** 頁的每一位,都對應著一頁 Swap 空間。如果這一位是 1,表示此頁 Swap 可用;如果是 0,表示此頁是壞塊,不能使用。這么說來,*** 個 Swap 映射位應該是 0,因為,*** 頁 Swap 是映射頁。另外,***10 個映射位也被占用,用來表示 Swap 的版本(原來的版本是 Swap_space,現在的版本是 swapspace2)。那么,如果說一頁的大小為 s,這種 Swap 的實現方法共能管理“8 * (s – 10) – 1”個 Swap 頁。對于 i386 系統來說 s =4096,則空間大小共為 133890048,如果認為 1 MB=2^20 Byte 的話,大小正好為 128M。

Swap 配置對性能的影響

分配太多的 Swap 空間會浪費磁盤空間,而 Swap 空間太少,則系統會發生錯誤。

如果系統的物理內存用光了,系統就會跑得很慢,但仍能運行;如果 Swap 空間用光了,那么系統就會發生錯誤。例如,Web 服務器能根據不同的請求數量衍 生出多個服務進程(或線程),如果 Swap 空間用完,則服務進程無法啟動,通常會出現“application is out of memory”的錯誤,嚴重時會造成服務進程的死鎖。因此 Swap 空間的分配是很重要的。

通常情況下,Swap 空間應大于或等于物理內存的大小,最小不應小于 64M,通常 Swap 空間的大小應是物理內存的 2 -2.5 倍。但根據不同的應用,應 有不同的配置:如果是小的桌面系統,則只需要較小的 Swap 空間,而大的服務器系統則視情況不同需要不同大小的 Swap 空間。特別是數據庫服務器和 Web 服務器,隨著訪問量的增加,對 Swap 空間的要求也會增加,具體配置參見各服務器產品的說明。

另外,Swap 分區的數量對性能也有很大的影響。因為 Swap 交換的操作是磁盤 IO 的操作,如果有多個 Swap 交換區,Swap 空間的分配會以輪流的方 式操作于所有的 Swap,這樣會大大均衡 IO 的負載,加快 Swap 交換的速度。如果只有一個交換區,所有的交換操作會使交換區變得很忙,使系統大多數時間 處于等待狀態,效率很低。用性能監視工具就會發現,此時的 CPU 并不很忙,而系統卻慢。這說明,瓶頸在 IO 上,依靠提高 CPU 的速度是解決不了問題的。

建立一個有連續空間的空白文件

服務器的物理內存是 512MB,按照 1.5~2 倍原則,我將 swap 文件設置為 1GB。

#root @aliyun :/srv# dd if=/dev/zero of=SWAPFILE bs=1024 count=1048576 1048576+0 records in 1048576+0 records out 1073741824 bytes (1.1 GB) copied, 59.7957 s, 18.0 MB/s #root@aliyun :/srv# dd if=/dev/zero of=SWAPFILE bs=1024 count=1048576 1048576+0 records in 1048576+0 records out 1073741824 bytes (1.1 GB) copied, 59.7957 s, 18.0 MB/s

使用 swap 文件

使用 swapon 命令讓系統使用這個文件作為 swap 文件。但是這個文件不能直接使用,否則會報錯:

root @aliyun :/srv# swapon swapfile swapon: /srv/swapfile: read swap header failed: Invalid argument root@aliyun:/srv# swapon swapfile swapon: /srv/swapfile: read swap header failed: Invalid argument

必須先使用 mkswap 將文件格式化成 swap 格式(不知道為什么會少了 4KB):

root @aliyun :/srv# mkswap SWAPFILE 1048576 Setting up swapspace version 1, size = 1048572 KiB no label, UUID=1aaed031-33ef-479b-a9a4-2f008a7bbb2f root@aliyun:/srv# mkswap SWAPFILE 1048576 Setting up swapspace version 1, size = 1048572 KiB no label, UUID=1aaed031-33ef-479b-a9a4-2f008a7bbb2f

使用格式化完畢的文件:

root @aliyun :/srv# swapon SWAPFILE root@aliyun:/srv# swapon SWAPFILE

查看文件使用情況:

root@aliyun:/srv# swapon -s Filename Type Size Used Priority /srv/SWAPFILE file 1048572 95852 -1 root@aliyun:/srv# swapon -s Filename Type Size Used Priority /srv/SWAPFILE file 1048572 95852 -1

加入自動啟用

為避免重啟后 swapfile 生效,可以將啟用 swap 的代碼加入啟動文件中,對于 ubuntu server,編輯 /etc/rc.local 文件,加入以下內容(具體文件路徑自定):

swapon /srv/SWAPFILE swapon /srv/SWAPFILE

或者

修改 /etc/fstab 文件,加入以下內容:

/srv/SWAPFILE swap swap defaults 0 0 /srv/SWAPFILE swap swap defaults 0 0

看完了這篇文章,相信你對“Linux 系統安裝中 Swap 分區有什么用”有了一定的了解,如果想了解更多相關知識,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計3653字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 班戈县| 鞍山市| 临江市| 南宫市| 闽侯县| 建水县| 运城市| 博兴县| 上饶市| 凌源市| 泾川县| 高安市| 绥棱县| 托克逊县| 白山市| 永靖县| 禹州市| 武乡县| 汝城县| 教育| 景泰县| 新乡市| 墨玉县| 东丰县| 揭西县| 康马县| 沙河市| 龙江县| 于都县| 正安县| 竹北市| 教育| 朝阳县| 平陆县| 东丽区| 镇原县| 曲松县| 云龙县| 津市市| 闽清县| 山阳县|