❶ linux Swap 絀洪棿綆$悊涓庝紭鍖栨寚鍗楋細浠庡熀紜浣跨敤鍒拌繃楂樺勭悊
Linux Swap絀洪棿綆$悊涓庝紭鍖栵細娣卞叆鐞嗚В涓庡疄鐢ㄧ瓥鐣
鍦↙inux鐨勪笘鐣岄噷錛孲wap絀洪棿鏄鍐呭瓨綆$悊鐨勭寷闂峰叧閿緇勪歡錛屽畠宸у欏湴鎵婕旂潃鉶氭嫙鍐呭瓨鐨勮掕壊錛屽挨鍏跺湪鍐呭瓨緔у紶鏃訛紝鑳芥彁鍗囩郴緇熻祫婧愮殑鍒╃敤鐜囥傜劧鑰岋紝Swap絀洪棿騫墮潪鏃犻檺鍒剁殑欖旀硶錛屽叾浣跨敤涓嶅綋鍙鑳戒細瀵圭郴緇熸ц兘閫犳垚璐熼潰褰卞搷銆傛湰鏂囧皢甯︿綘鎺㈢儲Swap絀洪棿鐨勫熀紜鍘熺悊錛屾暀浣犲備綍鐩戞帶銆佽劇疆鍜屼紭鍖栵紝浠ュ簲瀵筍wap浣跨敤榪囬珮鏃剁殑鎸戞垬銆
Swap絀洪棿鐨勪綔鐢ㄥ湪浜庯紝褰撶墿鐞哛AM錛圧AM錛変笉鍫閲嶈礋鏃訛紝浼氬皢鏆傛椂涓嶆椿璺冪殑鏁版嵁縐誨姩鑷崇‖鐩樹笂鐨勯勭暀絀洪棿銆傝繖鐪嬩技綆鍗曪紝瀹炲垯鍏充箮緋葷粺鐨勭伒媧繪т笌紼沖畾鎬с備笉榪囷紝紜鐩樿誨啓閫熷害榪滀綆浜嶳AM錛岄戠箒鐨凷wap鎿嶄綔鍙鑳藉艱嚧鎬ц兘涓嬮檷錛屽洜姝わ紝鍚堢悊閰嶇疆Swap絀洪棿鑷沖叧閲嶈併
棣栧厛錛屼嬌鐢╢ree -m鍛戒護錛屼綘鍙浠ョ洿瑙傚湴鐪嬪埌鍐呭瓨鍜孲wap鐨勪嬌閫楀巻鐢ㄦ儏鍐點傞氳繃swapon --show鍛戒護錛屽彲浠ヨ︾粏浜嗚ВSwap鐨勫垎鍖烘垨鏂囦歡鐘舵併
錛1錛夊壋寤篠wap鏂囦歡錛氫嬌鐢╯udo fallocate鍒涘緩錛屼緥濡傚壋寤4GB鐨勬枃浠秙udo fallocate -l 4G /swapfile銆
錛2錛夋潈闄愯劇疆錛氱『淇濆彧鏈塺oot鏉冮檺鍙璁塊棶錛屽俿udo chmod 600 /swapfile銆
錛3錛夋牸寮忓寲涓篠wap錛氱敤mkswap鍛戒護鏍煎紡鍖栵紝濡俿udo mkswap /swapfile銆
錛4錛夊惎鐢ㄥ苟鎸佷箙鍖栵細涓存椂鍚鐢╯wapon錛屾案涔呯敓鏁堝垯闇娣誨姞鍒/etc/fstab銆
Swappiness鍙傛暟褰卞搷鍐呭瓨鍒癝wap鐨勫垏鎹錛岃皟鏁村畠鑳戒紭鍖栧唴瀛樹嬌鐢ㄣ傚厛鏌ョ湅褰撳墠鍊礆紝涓存椂鏀硅撅紝鐒跺悗姘鎬箙淇鏀歸厤緗銆
灝界Swap鍙浠ヨˉ鍏匯AM錛屼絾紜鐩樻ц兘褰卞搷鏄捐憲銆傚敖閲忎嬌鐢⊿SD浠ユ彁鍗嘢wap鎿嶄綔閫熷害錛岄伩鍏嶆ц兘鐡墮堛
Swap絀洪棿鍙鑳藉寘鍚鏁忔劅鏁版嵁錛岃板緱鍦ㄤ笉闇瑕佹椂浣跨敤swapoff鍛戒護鍏抽棴錛屽苟娓呴櫎swap鏂囦歡浠ヤ繚瀹夊叏銆
閫氳繃涓婅堪姝ラわ紝鎴戜滑鎴愬北鐭ユ悳鍔熸墿灞曚簡Linux緋葷粺Swap絀洪棿錛岃В鍐充簡鍙鑳界殑涓嶈凍銆傜悊瑙e苟綆$悊濂絊wap錛屽氨鍍忕粰緋葷粺鍔犺呬簡鍐呭瓨鎵╁睍鍣錛岀『淇濆湪鍐呭瓨鍘嬪姏涓嬶紝緋葷粺浠嶈兘淇濇寔騫崇ǔ榪愯屻傝繖鏄涓涓鎻愬崌緋葷粺鎬ц兘鍜岀ǔ瀹氭х殑瀹炵敤宸ュ叿錛屽煎緱姣忎釜Linux鐢ㄦ埛鎺屾彙銆
璁頒綇錛孲wap絀洪棿鐨勭$悊騫墮潪涓鍔蟲案閫革紝鍔ㄦ佽皟鏁村拰鐩戞帶Swappiness鍊礆紝閫夋嫨鍚堥傜殑紜鐩樼被鍨嬶紝閮芥槸紜淇濈郴緇熼珮鏁堣繍琛岀殑鍏抽敭銆傜幇鍦錛屼綘宸茬粡鍑嗗囧ソ鍦↙inux涓栫晫涓錛岀伒媧昏屾湁鏁堝湴綆$悊浣犵殑Swap絀洪棿浜嗐
❷ 如何管理配置 Linux下Swap交換分區
理解什麼是swap分區
Swap是Linux下的虛擬內存分區,他的主要作用是在物理內存不夠用的時候,就需要將物理內存中的一部分空間釋放出來,讓當前的程序來使用,這些內存釋放出來的空間沒有什麼操作的程序,這些釋放的內存將被保存到swap空間中,等到這寫程序在運行的時候,再從swap虛擬空間來讀取這些程序給內存來使用。這樣中是在系統內存不夠用的時候,進行交換。在針對Linux web伺服器的時候,調整swap能提高系統很大的性能。
現在操作系統都突破了物理內存的限制,讓程序可以操作大於物理內存的空間,虛擬內存想防火牆一樣,讓每個進程不受其他程序的干擾。
我們需要注意的是不是所以的物理內存數據都會被交換到swap中的,要是所有的內存都放在swap中肯的是不可能的,所以有一部分直接交換到文件系統。當這文件讀取的時候,直接從文件系統調用不從swap調用程序文件。
早期的時候經常看見說swap不能超過128M,現在我們的伺服器一般不存在這種問題最大可以swap到2048M的.swap空間文件的結構是分頁的每一頁的大小和內存頁的大小是一樣的,這樣的好處是方便swap空間和內存之間的交換,舊版本的Linux實現Swap空間時,用Swap空間的第一頁作為所有Swap空間頁的一個「位映射」。這就是說第一頁的每一位,都對應著一頁Swap空間。如果這一位是1,表示此頁Swap可用;如果是0,表示此頁是壞塊,不能使用。這么說來,第一個Swap映射位應該是0,因為,第一頁Swap是映射頁。
所以取消了Linux映射的方法。
一般創建swap有兩種方法
第一種方法是在創建系統的時候添加swap分區
還有一種是在系統創建完之後再創建swap分區,或者創建臨時的swap。我們需要注意的是,在創建系統的時候我們沒有swap分區也是能正常安裝部署系統的,只是當系統文件調用swa文件的的時候會發生錯誤,所以我們需要swap不是沒有swap不一定能啟動起來系統。
查看當前swap資源的使用情況:
Swapon –s free –m
❸ 為什麼linux物理內存還有很多,卻開始使用swap
有沒有存在一種可能
你的系統安裝有內存管理方案機制或者這個特定的linux版本自帶這種機制
如果這種機制合理的話,應該提早將不重要的程序以swap區間存放
這樣使得重要或者緊急的程序能夠立即響應在物理內存
這也是很好的
❹ Linux - Swap
首先,swap是硬碟上的一塊空間。
其次,當內存沒有多餘空間的時候,可以將一部分數據交換到swap空間。也就是將內存中的一部分數據放到硬碟中,並釋放內存空間。這樣,釋放出的內存空間就又可以被利用來存儲其他數據了。
這樣,本來只有4G的內存,如果swap有2G的話,可使用的內存可以認為是6G。
但是,硬碟的速度比內存慢太多太多了。因此swap只是對內存的一種補充,是在內存不足時對內存的擴充,但是不能代替內存使用。
內存不足時, 操作系統 會選擇 最久沒被使用的內存數據 ,交換到swap空間。
注意,交換操作是由操作系統來進行的。
系統在什麼情況或條件下才會使用Swap分區的空間呢? 其實是Linux通過一個參數swappiness來控制的。當然還涉及到復雜的演算法。
這個參數值可為 0-100,控制系統 swap 的使用程度。
0告訴內核盡可能的不要將內存數據移到swap中,也即只有在迫不得已的情況下才這么做,而100告訴內核只要有可能,盡量的將內存中不常訪問的數據移到swap中。默認值為 60。注意:這個只是一個權值,不是一個百分比值,涉及到系統內核復雜的演算法
查看當前系統中swappiness的值
修改當前系統中swappiness的值
上面通過sysctl修改的swappiness值在系統重啟後會失效,要想重啟後繼續生效,需要修改配置文件/etc/sysctl.conf,將下面這行修改成10,如果文件中找不到這行的話,在文件末位加上這行就可以了
既然配置swap對桌面系統有幫助,那麼配置多少大小的swap比較合適呢?下面是ubuntu給出的建議:
Linux下有兩種類型的swap空間,swap分區和swap文件,他們有各自的特點:
swap分區上面由於沒有文件系統,所以相當於內核直接訪問連續的磁碟空間,效率相對要高點,但由於swap分區一般安裝系統時就分配好了了,後期要縮減空間和擴容都很不方便。
swap文件放在指定分區的文件系統裡面,所以有可能受文件系統性能的影響,但據說2.6版本以後的內核可以直接訪問swap文件對應的物理磁碟地址,相當於跳過了文件系統直接訪問磁碟,不過如果swap文件在磁碟上的物理位置不連續時,還是會對性能產生不利影響,但其優點就是靈活,隨時可以增加和移除swap文件。
如果配置有多個swap分區或者文件的話,這里將會有多行,每行代表一個正在被系統使用的swap分區或文件,下面是每個欄位的意思:
並不是swap空間佔用多就一定性能下降,真正影響性能是swap in和out的頻率,頻率越高,對系統的性能影響越大,我們可以通過vmstat命令來查看swap in/out的頻率
在添加swap分區前,首先得有一個空閑的分區,如果是一塊新的磁碟,可以用fdisk來創建一個新的分區用於swap。
添加swap文件就簡單多了,也沒有分區操作那麼有風險。
通過如下命令,能查看所有進程的使用swap情況
查看某個進程swap佔用內存大小腳本:
查看所有進程使用swap情況腳本:
❺ linux vps Cache化內存,Buffers緩沖佔用太高呀,怎麼辦
真實使用的內存還不到100M,buffers/cache將近使用了400M,你500多M的物理內存就用光了,所以會用到硬碟的swap。
對於一台512M內存的LEMP伺服器,完全可以不用swap分區,所以我建議你盡量少用swap分區或者把swap分區禁用掉:
減少使用SWAP(建議):
cat /proc/sys/vm/swappiness 默認是60
sudo sysctl vm.swappiness=0 設置為0
sudo nano /etc/sysctl.conf 永久改變這一值,在末尾添加(重啟後生效):
vm.swappiness=0
臨時禁用SWAP:
sudo swapoff -a
永久禁用SWAP:
sudo nano /etc/fstab 注釋掉SWAP分區項。