目錄
- 1.1 前言
- 1.2 虛擬記憶體orSwap
- 1.3 交換區
1.1 前言
很久之前在做一個網站的時候,發現的一個問題,
之前在搭建完網站需要啟動Mysql的時候,死活啟動不了,為什么?我查了下日志,發現是etc/mysql/下的Mysql組態檔一直無法生成,
這個檔案一般是隨著Mysql服務重啟的時候會自動生成到etc/組態檔下,我當前的機器記憶體是很足的,所以我想臨時檔案不可能生成不了呀!
1.2 虛擬記憶體orSwap
但是也知道SWap檔案交換區的作用,但是我想的是按照Windows的路子,臨時的東西不都是放在記憶體里的嗎?

不過我后來又想到作業系統有虛擬記憶體一說呀,那么Linux的虛擬記憶體是啥?
swap全稱為swap place,即交換區,當記憶體不夠的時候,被踢出的行程被暫時存盤到交換區,當需要這條被踢出的行程的時候,就從交換區重新加載到記憶體,否則它不會主動交換到真實記憶體中,
就這樣我重新修改了一下機器的Swap空間大小,如果組態檔成功生成了!這里就有一個疑問了,Linux在作業中什么時候選擇記憶體,什么時候選擇Swap?
1.3 交換區
交換磁區并不是等到物理記憶體用盡了才使用的,是否盡量的使用或不使用swap,在內核空間有一個引數控制,
cat /proc/sys/vm/
swappinessswappiness=0 的時候表示最大限度使用物理記憶體,然后才是swap空間;swappiness=100 的時候表示積極的使用swap磁區,并且把記憶體上的資料及時的搬運到swap空間里面,
考慮到以下情況:
1)安裝系統時難以確定記憶體的負荷,如何設定交換磁區大小,
2)系統中物理記憶體越大,所需交換磁區就會越少,
因此,在Red Hat Enterprise Linux 中,以下是設定合適的交換磁區大小的規則:

我們平時安裝系統時,默認都分記憶體的2倍,因為現在有硬碟空間都很大,也不在乎那幾十G的空間,
通過一些實踐發現,一般臨時組態檔都是會放在Swap區里的,所以當你發現你機子記憶體很足,但是就是出現一些程式突然運行中斷現象,極有可能是你分配給機子的Swap空間太小了,
比如網站的搭建必然要很大的Swap空間去存盤一些臨時靜態檔案,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/63253.html
標籤:Linux
