自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

贊成和反對(duì)為云實(shí)例設(shè)置交互空間的理由

譯文
系統(tǒng) Linux
要不要交換?這是個(gè)云問題。許多Linux發(fā)行版(包括Red Hat)建議所有系統(tǒng)使用交換(swap)內(nèi)存。然而,如果您看一下各種發(fā)行版的大多數(shù)云實(shí)例,會(huì)發(fā)現(xiàn)沒有交換內(nèi)存。

[[406422]]

【51CTO.com快譯】許多Linux發(fā)行版(包括Red Hat)建議所有系統(tǒng)使用交換(swap)內(nèi)存。然而,如果您看一下各種發(fā)行版的大多數(shù)云實(shí)例,會(huì)發(fā)現(xiàn)沒有交換內(nèi)存。

概況介紹

交換內(nèi)存在大多數(shù)系統(tǒng)上作為磁盤上的一個(gè)分區(qū)而存在。分區(qū)后,管理員用mkswap格式化分區(qū),用swapon啟用它,內(nèi)核立即看到可用的交換內(nèi)存。沒有可用分區(qū)的系統(tǒng)可使用交換文件,這是用mkswap格式化并啟用的現(xiàn)有文件系統(tǒng)上的一個(gè)文件而已。

這兩種方法都很好,但在分區(qū)上設(shè)置交換內(nèi)存可帶來更好的性能,因?yàn)槟苊饬爽F(xiàn)有分區(qū)上交換文件的開銷。

系統(tǒng)RAM不足時(shí),Linux可將內(nèi)存頁存儲(chǔ)到交換空間中,避免進(jìn)程殺死、系統(tǒng)崩潰。磁盤的速度比系統(tǒng)RAM慢得多,這降低了系統(tǒng)性能,直到系統(tǒng)RAM釋放出來。如果內(nèi)存使用量繼續(xù)攀升到系統(tǒng)RAM和交換內(nèi)存完全耗盡的地步,致命的內(nèi)存不足(OOM)就會(huì)出現(xiàn),并開始?xì)⑺肋M(jìn)程,直到足夠的RAM可用。

交換空間大小方面歷來的建議是系統(tǒng)RAM大小的兩倍。比如,為擁有1GB系統(tǒng)RAM的系統(tǒng)分配2GB的交換空間。該比率適用于較小的系統(tǒng),無法適用于擁有數(shù)百GB系統(tǒng) RAM的系統(tǒng)。

贊成為云設(shè)置交換空間的理由

微服務(wù)的興起促使許多公司部署大量較小的實(shí)例。較小的實(shí)例隨帶較少的系統(tǒng)RAM,這增加了致命的OOM出現(xiàn)的風(fēng)險(xiǎn):殺死進(jìn)程,直到系統(tǒng)有足夠的可用內(nèi)存。

為這些系統(tǒng)添加交換空間在兩個(gè)方面有幫助:

首先,進(jìn)程可以在高負(fù)載期間從系統(tǒng)RAM臨時(shí)轉(zhuǎn)入到交換空間。管理員可從監(jiān)控系統(tǒng)了解這些事件,他們有時(shí)間分析系統(tǒng)上發(fā)生這種情況的原因。萬一內(nèi)存泄漏,開發(fā)人員可以檢查進(jìn)程,在進(jìn)程仍運(yùn)行期間了解出了什么問題。這也可能表明:隨著應(yīng)用程序變龐大,管理員需要為它分配更大的實(shí)例。

其次,Linux內(nèi)核會(huì)監(jiān)視很少使用的內(nèi)存頁,并將它們發(fā)送到交換空間,以保留寶貴的系統(tǒng)RAM。sysctl設(shè)置vm.swappiness可控制內(nèi)核將內(nèi)存頁發(fā)送到交換空間的愿望。這可以通過將最活躍的頁留在系統(tǒng)RAM中,而將很少使用的頁發(fā)送到交換內(nèi)存來幫助云實(shí)例。

反對(duì)為云設(shè)置交換空間的理由

管理員禁止交換空間,因?yàn)樗麄兛梢宰詣?dòng)用新的實(shí)例替換異常的實(shí)例。隨著時(shí)間的推移,他們的監(jiān)控指標(biāo)顯示因OOM導(dǎo)致應(yīng)用程序下線而需要更換的實(shí)例有所增加。解決方案可能是更大的實(shí)例或進(jìn)一步調(diào)查高負(fù)載下的內(nèi)存泄漏。Systemd也會(huì)在可能的情況下快速重啟這些進(jìn)程。

在云實(shí)例上選擇交換內(nèi)存位置需要更全面的思考和規(guī)劃。在物理服務(wù)器上,本地連接的非易失性內(nèi)存快速(NVMe) 磁盤上的交換內(nèi)存足夠快,但是裝有外部存儲(chǔ)的云實(shí)例(比如AWS的彈性塊存儲(chǔ)即EBS)又如何?EBS上的性能取決于您選擇哪種類型的EBS和系統(tǒng)上的鄰居。系統(tǒng)出現(xiàn)RAM溢出時(shí),遠(yuǎn)程存儲(chǔ)系統(tǒng)上的交換內(nèi)存可能導(dǎo)致實(shí)例性能欠佳。管理員可以選擇RAM溢出時(shí)忽略交換內(nèi)存并替換這些實(shí)例,而不是應(yīng)對(duì)性能糟糕的處理請(qǐng)求的服務(wù)器。

最后,許多云實(shí)例成為Kubernetes和OpenShift集群的一部分,它們?cè)谔幚斫粨Q內(nèi)存時(shí)面臨難題。關(guān)于適當(dāng)處理交換內(nèi)存,GitHub上有一個(gè)問題單。

部署使用交換內(nèi)存的云實(shí)例

如果您認(rèn)為提供交換內(nèi)存對(duì)應(yīng)用程序有益,cloud-init 使您能夠使用mounts模塊在第一次啟動(dòng)時(shí)提供交換內(nèi)存。只需為現(xiàn)有的cloud-config用戶數(shù)據(jù)添加幾行:

  1. swap: 
  2.     filename: /swapfile 
  3.     size: auto 
  4.     maxsize: 4294967296 

該配置告訴cloud-init在/swapfile創(chuàng)建一個(gè)自動(dòng)大小(接近或小于4GB)的交換文件。自動(dòng)交換大小的調(diào)整格式在cloud-init的源代碼中:

  1. formulas = [ 
  2.     # < 1G: swap = double memory 
  3.     (1 * GB, lambda x: x * 2), 
  4.     # < 2G: swap = 2G 
  5.     (2 * GB, lambda x: 2 * GB), 
  6.     # < 4G: swap = memory 
  7.     (4 * GB, lambda x: x), 
  8.     # < 16G: 4G 
  9.     (16 * GB, lambda x: 4 * GB), 
  10.     # < 64G: 1/2 M up to max 
  11.     (64 * GB, lambda x: x / 2), 

Red Hat建議的交換大小略有不同:

  • 2GB或更少的系統(tǒng)RAM:2x RAM
  • 大于2GB至8GB: 1x RAM
  • 大于8GB至 64GB:至少4 GB
  • 大于64GB:至少4GB

您可以在cloud-config中用size:參數(shù)手動(dòng)指定交換內(nèi)存(以字節(jié)為單位)

  1. swap: 
  2.     filename: /swapfile 
  3.     size: 2147483648  # 2 GiB 

配置現(xiàn)有云實(shí)例上的交換內(nèi)存

針對(duì)現(xiàn)有實(shí)例,交換文件常常是啟用交換內(nèi)存的最容易的方法。在該例中,將2GB交換文件放入到/swapfile中:

  1. # BTRFS only ################################################################# 
  2. # We must disable copy-on-write updates for swap files on btrfs file systems. 
  3. # The 'swapon' step fails if you skip these steps. 
  4. truncate -s 0 /swapfile 
  5. chattr +C /swapfile 
  6. # BTRFS only ################################################################# 
  7. # A 2 GiB swap file. 
  8. dd if=/dev/zero of=/swapfile bs=1MiB count=2048 
  9. Set the correct permissions on the swap file. 
  10. chmod 0600 /swapfile 
  11. # Format the swapfile. 
  12. mkswap /swapfile 
  13. # Enable the swapfile. 
  14. swapon /swapfile 
  15. Add it to /etc/fstab to enable it after reboot. 
  16. echo "/swapfile none swap defaults 0 0" >> /etc/fstab 

查看交換內(nèi)存是否準(zhǔn)備就緒:

  1. $ cat /proc/swaps 
  2. Filename        Type    Size      Used    Priority 
  3. /swapfile       file    2097148   0       -2 

原文標(biāo)題:Analyzing cases for and against setting swap space on cloud instances,作者:Major Hayden (Red Hat)

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2021-09-28 10:10:55

量子計(jì)算芯片超算

2020-08-11 15:54:15

數(shù)據(jù)中心整合數(shù)據(jù)中心

2009-12-03 08:55:12

Java EE 6

2009-03-11 08:38:18

RIM黑莓移動(dòng)操作系統(tǒng)

2022-10-28 12:10:03

云計(jì)算企業(yè)

2010-08-06 09:58:16

云計(jì)算

2014-09-24 09:58:51

2020-01-03 16:16:15

云計(jì)算技術(shù)工具

2023-04-03 13:24:17

ChatGPTPNAS語言

2009-02-05 08:52:04

電訊盈科私有化李澤楷

2016-11-09 15:11:17

安全云存儲(chǔ)云服務(wù)

2021-12-08 10:33:19

桌面云

2013-03-29 09:37:34

私有云公有云數(shù)據(jù)安全

2013-09-02 11:06:03

2013-02-21 10:00:51

服務(wù)器虛擬化

2018-05-12 20:22:19

華為3GPP5G

2015-12-11 15:52:47

盛大云

2010-01-12 17:56:51

交換機(jī)網(wǎng)關(guān)設(shè)置IP設(shè)置
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)