亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

CentOS7上如何添加Swap交換空間

添加時間:2019-7-1 20:22:06  添加: 思海網絡 
前言

如何讓服務器響應更快?如何避免應用出現內存不足的錯誤?最簡單的方法就是增加交換空間。Swap是存儲盤上的一塊自留地,操作系統可以在這里暫存一些內存里放不下的東西。

這從某種程度上相當于增加了服務器的可用內存。雖然從swap讀寫比內存慢,但總比沒有好,算是內存不夠時的安全網。

如果沒有swap,則服務器一旦內存不足,就會開始終止應用以釋放內存,甚至會崩潰,這會讓你丟失一些還沒來得及保存的數據,或者造成當機。有些應用明確要求系統配置swap以確保數據訪問的可靠性。

本文介紹如何在CentOS 7服務器上創建并啟用swap文件。

注:swap通常在傳統機械硬盤上表現更好,在SSD上使用swap可能會造成問題,尤其是硬件老化之后。所以,對于DigitalOcean以及其他使用基于SSD的云主機服務的用戶,我們不推薦啟用swap。這甚至會影響到跟你的虛擬機共用宿主機的其他用戶。

對于DigitalOcean用戶,提升性能的最佳方法就是更新Droplet。通常來說,升級后的主機表現都會有所提升,并且更不容易受到硬件問題的影響。

準備工作

首先,你需要一臺CentOS 7服務器,配置過具備sudo權限的非root用戶(配置過程可參考這個教程的第一到第四步驟)。

準備就緒后,以該用戶名SSH到你的CentOS服務器上,準備安裝swap文件。

檢查系統的Swap信息 

首先我們需要檢查系統的存儲,看看是否已經配置過swap。一個系統可以設置多個swap文件或分區,不過一般來說一個就夠了。

使用swapon命令可以檢查系統是否已經配置過swap,這是一個通用的swap工具。使用-s標簽可列出當前存儲設備上的swap使用情況:


swapon -s
如果該命令沒有返回出結果,則代表該系統尚未配置過swap。

或者,我們也可以使用free工具來查看系統的整體內存使用情況,這里可以看到內存和swap的使用狀態(顯示單位為MB):

free -m
 
 
             total       used       free     shared    buffers     cached
Mem:          3953        315       3637          8         11        107
-/+ buffers/cache:        196       3756
Swap:            0          0       4095
這里可以看到我們這個系統的total swap空間為0,即沒有配置過swap。這與我們在swapon里看到的結果相符合。

檢查可用的存儲空間

通常,我們建立一個單獨的分區作為swap。然而有時候由于硬件或軟件的限制,新建分區的方式無法實現,這種情況下就可以建立一個swap文件來實現同樣的功能。

開始之前,先檢查一下磁盤的可用空間。輸入如下指令:


df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 59G 1.5G 55G 3% / devtmpfs 2.0G 0 2.0G 0% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 2.0G 8.3M 2.0G 1% /run tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
這里的-h標記是為了告訴dh將信息輸出為對人類友好的格式,比如以MB或GB為單位輸出空間使用和空余情況,而不是直接輸出內存塊的個數。

從第一行可以看到我們的存儲分區上還有59GB的空間剩余,這足夠我們操作了。(我這是一臺中等規模的新建云主機,每個人的情況可能有很大不同。)

合適的swap空間是多大?關于這個問題有很多種選擇,這取決于你的應用需求和你個人的偏好。一般來說,內存容量的兩倍就是個不錯的起點。

我的系統內存有4GB,如果設置8GB的swap會占據太多空間,所以我決定只設置4GB就好。

創建Swap文件

接下來我們將在文件系統上創建swap文件。我們要在根目錄(/)下創建一個名叫swapfile的文件,當然你也可以選擇你喜歡的文件名。該文件分配的空間將等于我們需要的swap空間。

最快捷的創建方式是fallocate命令,該命令能夠創建一個預分配指定大小空間的文件。輸入如下指令創建一個4GB的文件:


sudo fallocate -l 4G /swapfile
輸入密碼后,該swap文件將立即創建完畢。我們可以用ls命令檢查文件大小:


ls -lh /swapfile -rw-r--r-- 1 root root 4.0G Oct 30 11:00 /swapfile
至此,我們的swap文件就創建完畢了。

啟用Swap文件

現在我們已經有了swap文件,但系統還不知道應該使用該文件作為swap,這就需要我們告知系統將該文件格式化為swap并啟用起來。

首先我們需要更改swap文件的權限,確保只有root才可讀,否則會有很大的安全隱患。使用chmod命令進行權限操作:


sudo chmod 600 /swapfile
如此,該文件的讀寫都只有root才能操作。使用ls -lh命令檢查一下:


ls -lh /swapfile -rw------- 1 root root 4.0G Oct 30 11:00 /swapfile
然后,使用如下命令告知系統將該文件用于swap:


sudo mkswap /swapfile Setting up swapspace version 1, size = 4194300 KiB no label, UUID=b99230bb-21af-47bc-8c37-de41129c39bf
現在,這個swap文件就可以作為swap空間使用了。輸入如下命令開始使用該swap:


sudo swapon /swapfile
我們可以輸入如下命令來確認一下設置是否已經生效:


swapon -s Filename Type Size Used Priority /swapfile file 4194300 0 -1
可以看到返回的結果中已經有我們剛才設置的swap。再使用free工具確認一下:


free -m total used free shared buffers cached Mem: 3953 315 3637 8 11 107 -/+ buffers/cache: 196 3756 Swap: 4095 0 4095
至此,我們的swap已經設置完畢,操作系統會在需要的時候使用它。

使Swap文件永久生效

至此我們已經在系統中啟用了swap文件,然而一旦系統重啟后,服務器還不能自動啟用該文件。要讓系統在重啟后自動生效swap,我們可以通過修改fstab文件來實現(這是一個管理文件系統和分區的表)。

用sudo權限打開該文件編輯:


sudo nano /etc/fstab
在文件末尾加入下面這行內容,告訴操作系統自動使用剛才創建的swap文件:


/swapfile   swap    swap    sw  0   0
添加完畢后,保存退出。以后服務器每次重啟都會檢查該文件并自動啟用swap。

更改Swap配置(可選)

有幾個涉及swap的選項可能會影響到系統的性能表現。大部分情況下這些選項是可選的,具體要修改成什么樣則取決于你的應用需求以及個人偏好。

Swappiness

swappiness參數決定了系統將數據從內存交換到swap空間的頻率,數值設置在0到100之間,代表系統將數據從內存交換到swap空間的力度。

該數值越接近于0,系統越傾向于不進行swap,僅在必要的時候進行swap操作。由于swap要比內存慢很多,因此減少對swap的依賴意味著更高的系統性能。

該數值越接近于100,系統越傾向于多進行swap。有些應用的內存使用習慣更適合于這種情況,這也于服務器的用途有關。

輸入如下命令查看當前的swappiness數值:


cat /proc/sys/vm/swappiness 30
CentOS 7默認設置了30的swappiness,這對于大部分桌面系統和本地服務器是比較中庸的數值。對于VPS系統而言,可能接近于0的值是更加合適的。

使用sysctl命令可以修改swappiness。比如將swappiness設為10:


sudo sysctl vm.swappiness=10 vm.swappiness = 10
本次修改將一直生效到下次重啟前。如果希望永久修改該數值,則需要編輯sysctl配置文件:


sudo nano /etc/sysctl.conf
將以下內容粘貼到文件末尾:


vm.swappiness = 10
編輯完成后,保存退出,之后服務器每次重啟的時候會將swappiness設置為該值。

緩存壓力(Cache Pressure ) 

另一個可以考慮更改的配置項是vfs_cache_pressure,該配置項涉及特殊文件系統元文件條目的存儲。對此類信息的頻繁讀取是非常消耗性能的,所以延長其在緩存的保存時間可以提升系統的性能。

通過proc文件系統查看緩存壓力的當前設定值:


cat /proc/sys/vm/vfs_cache_pressure 100
這個數值是比較高的,意味著系統從緩存中移除inode信息的速度比較快。一個保守一些的數值是50,使用sysctl命令進行設置:


sudo sysctl vm.vfs_cache_pressure=50 vm.vfs_cache_pressure = 50
這條命令僅在重啟前有效。要讓該設置永久有效,需要編輯sysctl配置文件:


sudo nano /etc/sysctl.conf
在文件末尾添加如下內容:


vm.vfs_cache_pressure = 50
保存退出,服務器就會在每次重啟后都自動將緩存壓力設置為50了。

總結 

至此,我們的系統內存就獲得了一些喘氣的空間。有了swap空間可以有效避免一些常見的問題。

如果你仍然會遇到內存不足(OOM,out of memory)的錯誤信息,或者你的系統不能運行你需要的應用,那么最好的方法是優化你的應用配置或者升級你的服務器,不過配置swap空間也不失為一個靈活的節省方案。


關鍵字:CentOS7、Swap、交換空間、服務器
分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站