主頁(yè) > 知識(shí)庫(kù) > Redis swap空間(虛擬內(nèi)存)的使用詳解

Redis swap空間(虛擬內(nèi)存)的使用詳解

熱門(mén)標(biāo)簽:魔獸2青云地圖標(biāo)注 超呼電話機(jī)器人 十堰營(yíng)銷(xiāo)電銷(xiāo)機(jī)器人哪家便宜 宿遷便宜外呼系統(tǒng)平臺(tái) 貴州電銷(xiāo)卡外呼系統(tǒng) 鄭州人工智能電銷(xiāo)機(jī)器人系統(tǒng) 山東外呼銷(xiāo)售系統(tǒng)招商 日本中國(guó)地圖標(biāo)注 北京400電話辦理收費(fèi)標(biāo)準(zhǔn)

   swap空間對(duì)于操作系統(tǒng)來(lái)說(shuō)比較重要,當(dāng)我們使用操作系統(tǒng)的時(shí)候,如果系統(tǒng)內(nèi)存不足,常常會(huì)將一部分內(nèi)存數(shù)據(jù)頁(yè)進(jìn)行swap操作,以解決臨時(shí)的內(nèi)存困境。swap空間由磁盤(pán)提供,對(duì)于高并發(fā)場(chǎng)景下,swap空間的使用會(huì)嚴(yán)重降低系統(tǒng)性能,因?yàn)樗肓舜疟P(pán)IO操作。

   在Linux中,提供了free命令來(lái)查詢操作系統(tǒng)的內(nèi)存使用情況,free 命令的結(jié)果中也包含了swap相關(guān)的情況,例如下面的結(jié)果中:

[root@VM-0-14-centos ~]# free -ht
       total    used    free   shared buff/cache  available
Mem:      1.8G    1.3G     72M    692K    433M    283M
Swap:      0B     0B     0B
Total:     1.8G    1.3G     72M

我們可以看到swap的值都是0,說(shuō)明當(dāng)前的內(nèi)存是沒(méi)有配置swap空間的,目前的操作系統(tǒng)的內(nèi)存是足夠的,通常情況下swap一行的used列應(yīng)該是0B比較好,它證明你的操作系統(tǒng)內(nèi)存充足,沒(méi)有發(fā)生swap空間的交換操作。

實(shí)時(shí)查看swap的使用

Linux中還為我們封裝了vmstat這個(gè)命令來(lái)查看系統(tǒng)的相關(guān)性能指標(biāo),其中也包含swap空間,其中和swap有關(guān)的指標(biāo)是si和so,分別代表swap in和swap out,我們看看vmstat的執(zhí)行結(jié)果:

[root@VM-0-14-centos ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r b  swpd  free  buff cache  si  so  bi  bo  in  cs us sy id wa st
 4 0   0 73712 84464 362016  0  0   7  26  7  1 1 1 98 0 0

查看執(zhí)行進(jìn)程占用swap的情況

在Linux操作系統(tǒng)中,/proc/pid/smaps這個(gè)文件記錄了當(dāng)前進(jìn)程所對(duì)應(yīng)的內(nèi)存映像信息,這個(gè)信息對(duì)于查詢指定進(jìn)程的swap使用情況很有幫助。下面以一個(gè)Redis實(shí)例進(jìn)行說(shuō)明:

[root@VM-0-14-centos ~]# ps -ef|grep redis  
root   1711   1 0 Jul20 ?    00:20:15 src/redis-server 127.0.0.1:21243
root   2370   1 0 Jul20 ?    00:20:18 src/redis-server 127.0.0.1:21244
root   2371   1 0 Jul20 ?    00:20:13 src/redis-server 127.0.0.1:21263
root   7815 5781 0 23:39 pts/3  00:00:00 grep --color=auto redis
root   14804   1 0 Jul20 ?    00:20:39 redis-server *:6379
我們以14804這個(gè)redis進(jìn)程為例
[root@VM-0-14-centos ~]# cat /proc/14804/smaps | grep Swap
Swap:         0 kB
Swap:         0 kB
Swap:         0 kB
.....
Swap:         0 kB
Swap:         0 kB
Swap:         0 kB

通常情況下,Linux服務(wù)器不會(huì)等到所有物理內(nèi)存都被使用完再使用swap空間,它引入swapiness這個(gè)變量來(lái)決定操作系統(tǒng)使用swap空間的傾向程度,它的取值是0~100,值越大,表示操作系統(tǒng)使用swap的可能性越高,反之則越低。swapiness變量值存在于系統(tǒng)配置文件/proc/sys/vm/swappiness 和/etc/sysctl.conf中,其前面的文件在重啟之后,就失效了,只有將這個(gè)值寫(xiě)入后面的文件,才能長(zhǎng)久的保存下去。

[root@VM-0-14-centos ~]# cat /proc/sys/vm/swappiness 
30

寫(xiě)入/etc/sysctl.conf的方法如下:

echo vm.swappiness={value} >> /etc/sysctl.conf

Redis在不同版本下,對(duì)于swapiness的建議配置也不一樣,通常情況下,swapness的值可以設(shè)置為:0、1、60、100這幾個(gè)。

其中:

設(shè)置為60是默認(rèn)值,

設(shè)置為100則操作系統(tǒng)會(huì)主動(dòng)使用swap空間,

設(shè)置成為0的話,在Linux3.4以及更早的Linux版本中,內(nèi)存不夠時(shí),傾向使用swap而不是OOM killer,在Linux3.5以及之后的版本中,傾向使用OOM Killer而不是swap空間

設(shè)置為1的話,在Linux3.5以及后續(xù)版本中,內(nèi)存不夠用的時(shí)候,傾向于使用swap空間,而不是OOM Killer

多說(shuō)一句:OOM kill是指Linux發(fā)現(xiàn)操作系統(tǒng)不可用的時(shí)候,也就是Out Of Memory的時(shí)候,強(qiáng)制殺死一些非內(nèi)核進(jìn)程,來(lái)保證有足夠的可用內(nèi)存進(jìn)行分配。一般OOM的日志記錄在系統(tǒng)日志/var/log/message中

以上就是Redis swap空間的使用示例的詳細(xì)內(nèi)容,更多關(guān)于Redis swap空間的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • 一次關(guān)于Redis內(nèi)存詭異增長(zhǎng)的排查過(guò)程實(shí)戰(zhàn)記錄
  • 淺談redis內(nèi)存數(shù)據(jù)的持久化方式
  • Redis教程(十一):虛擬內(nèi)存介紹
  • redis 限制內(nèi)存使用大小的實(shí)現(xiàn)
  • redis內(nèi)存空間效率問(wèn)題的深入探究

標(biāo)簽:江蘇 北京 吉安 楊凌 朝陽(yáng) 臺(tái)州 大慶 果洛

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Redis swap空間(虛擬內(nèi)存)的使用詳解》,本文關(guān)鍵詞  Redis,swap,空間,虛擬,內(nèi)存,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Redis swap空間(虛擬內(nèi)存)的使用詳解》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Redis swap空間(虛擬內(nèi)存)的使用詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章