人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

Linux 系統(tǒng)優(yōu)化的一些建議(內(nèi)核優(yōu)化)

發(fā)布日期:2022-01-26 14:49 | 文章來(lái)源:源碼中國(guó)

關(guān)閉swap

如果服務(wù)器上有運(yùn)行數(shù)據(jù)庫(kù)服務(wù)或消息中間件服務(wù),請(qǐng)關(guān)閉交換分區(qū)

echo "vm.swappiness = 0" >> /etc/sysctl.conf
sysctl -p

OOM Killer

一般我們的linux服務(wù)都是混部服務(wù)的,每個(gè)程序申請(qǐng)的物理內(nèi)存都是共享的;例如物理內(nèi)存只有1g,啟動(dòng)2個(gè)程序各申請(qǐng)1g是可以的,linux通過(guò)這種過(guò)度分配的方式來(lái)達(dá)到內(nèi)存的充分利用,當(dāng)程序?qū)嶋H使用內(nèi)存超出物理內(nèi)存時(shí),會(huì)被系統(tǒng)按照優(yōu)先級(jí),殺掉一部分程序以確保其它程序的正常運(yùn)行;為了避免核心服務(wù)被殺,可以將進(jìn)程文件設(shè)置為最高優(yōu)先級(jí)。

# 數(shù)值越小越不容易被殺
echo -17 > /proc/$pid/oom_score_adj

TCP

因?yàn)槲覀兲峁┑臄?shù)據(jù)庫(kù)和一些消息中間件服務(wù)都是內(nèi)網(wǎng)工作的,所以可以針對(duì)內(nèi)網(wǎng)對(duì)TCP參數(shù)進(jìn)行一些優(yōu)化。

  • net.ipv4.tcp_syn_retries

默認(rèn)值為6,參考值為2。主機(jī)作為客戶端,對(duì)外發(fā)起TCP連接時(shí),即三次握手的第一步,內(nèi)核發(fā)送SYN報(bào)文的重試次數(shù),超過(guò)這個(gè)次數(shù)后放棄連接。內(nèi)網(wǎng)環(huán)境通信良好,因此可以適度降低此值

  • net.ipv4.tcp_synack_retries

默認(rèn)值為5,參考值為2。主機(jī)作為服務(wù)端,接受TCP連接時(shí),在三次握手的第二步,向客戶端發(fā)送SYN+ACK報(bào)文的重試次數(shù),超過(guò)這個(gè)次數(shù)后放棄連接。內(nèi)網(wǎng)環(huán)境中可適度降低此值

  • net.ipv4.tcp_timestamps

是否開(kāi)啟時(shí)間戳,開(kāi)啟后可以更精確地計(jì)算RTT,一些其他特性也依賴(lài)時(shí)間戳字段。

  • net.ipv4.tcp_tw_reuse

默認(rèn)值為0,建議值為1。是否允許將處于TIME_WAIT狀態(tài)的socket用于新的TCP連接。這對(duì)于降低TIME_WAIT數(shù)量很有效。該參數(shù)只有在開(kāi)啟tcp_timestamps的情況下才會(huì)生效。

  • net.ipv4.tcp_tw_recycle

是否開(kāi)啟TIME_WAIT套接字的快速回收,這是比tcp_tw_reuse更激進(jìn)的一種方式,它同樣依賴(lài)tcp_timestamps選項(xiàng)。強(qiáng)烈建議不要開(kāi)啟tcp_tw_recycle,原因有兩點(diǎn),一是TIME_WAIT是十分必要的狀態(tài),避免關(guān)閉中的連接與新建連接之間的數(shù)據(jù)混淆,二是tcp_tw_recycle選項(xiàng)在NAT環(huán)境下會(huì)導(dǎo)致一些新建連接被拒絕,因?yàn)镹AT下每個(gè)主機(jī)存在時(shí)差,這體現(xiàn)在套接字中的時(shí)間戳字段,服務(wù)端會(huì)發(fā)現(xiàn)某個(gè)IP上的本應(yīng)遞增的時(shí)間戳出現(xiàn)降低的情況,時(shí)間戳相對(duì)降低的報(bào)文將被丟棄

  • net.core.somaxconn

默認(rèn)值為128,參考值為2048。定義了系統(tǒng)中每一個(gè)端口上最大的監(jiān)聽(tīng)隊(duì)列的長(zhǎng)度。當(dāng)服務(wù)端監(jiān)聽(tīng)了某個(gè)端口時(shí),操作系統(tǒng)內(nèi)部完成對(duì)客戶端連接請(qǐng)求的三次握手。這些已建立的連接存儲(chǔ)在一個(gè)隊(duì)列中,等待accept調(diào)用取走。本選項(xiàng)就是定義這個(gè)隊(duì)列的長(zhǎng)度。調(diào)大該值,可降低高并發(fā)場(chǎng)景下服務(wù)端的reject次數(shù)。

  • net.ipv4.tcp_max_syn_backlog

客戶端的請(qǐng)求在服務(wù)端由兩個(gè)隊(duì)列進(jìn)行管理,一種是與客戶端完成連接建立后,等待accept的放到一個(gè)隊(duì)列,這個(gè)隊(duì)列的長(zhǎng)度由somaxconn參數(shù)控制;另一種是正在建立但未完成的連接單獨(dú)存放一個(gè)隊(duì)列,這個(gè)隊(duì)列的長(zhǎng)度由tcp_max_syn_backlog控制;默認(rèn)128,調(diào)到至8192.

  • net.ipv4.tcp_max_tw_buckets

默認(rèn)值為4096,參考值為100000。定義系統(tǒng)同時(shí)保持TIME_WAIT套接字的最大數(shù)量,如果超過(guò)這個(gè)數(shù),則TIME_WAIT套接字將立刻被清除并打印警告信息。如果系統(tǒng)被TIME_WAIT過(guò)多問(wèn)題困擾,則可以調(diào)節(jié)tcp_max_tw_buckets、tcp_tw_reuse、tcp_timestamps三個(gè)選項(xiàng)來(lái)緩解。TIME_WAIT狀態(tài)產(chǎn)生在TCP會(huì)話關(guān)閉時(shí)主動(dòng)關(guān)閉的一端,如果想從根本上解決問(wèn)題,則讓客戶端主動(dòng)關(guān)閉連接,而非服務(wù)端。

page cache

page cache即系統(tǒng)臟頁(yè),是系統(tǒng)的io緩存,當(dāng)數(shù)據(jù)寫(xiě)入磁盤(pán)前會(huì)先寫(xiě)入page cache中,然后異步刷入磁盤(pán);寫(xiě)緩存可以提升IO的訪問(wèn)速度,但同時(shí)也會(huì)增加丟失數(shù)據(jù)的風(fēng)險(xiǎn)。

從page cache刷到磁盤(pán)有以下三種時(shí)機(jī):

  • 可用物理內(nèi)存低于特定閾值時(shí),為了給系統(tǒng)騰出空閑內(nèi)存;
  • 臟頁(yè)駐留時(shí)間超過(guò)特定閾值時(shí),為了避免臟頁(yè)無(wú)限期駐留內(nèi)存;
  • 被用戶的sync()或fsync()觸發(fā)。

由系統(tǒng)執(zhí)行的刷盤(pán)有兩種寫(xiě)入策略:

  • 異步執(zhí)行刷盤(pán),不阻塞用戶I/O;
  • 同步執(zhí)行刷盤(pán),用戶I/O被阻塞,直到臟頁(yè)低于某個(gè)閾值。

在一般情況下,系統(tǒng)先執(zhí)行第一種策略,當(dāng)臟頁(yè)數(shù)據(jù)量過(guò)大,異步執(zhí)行來(lái)不及完成刷盤(pán)時(shí),切換到同步方式。

我們可以通過(guò)內(nèi)核參數(shù)調(diào)整臟數(shù)據(jù)的刷盤(pán)閾值:

  • vm.dirty_background_ratio,默認(rèn)值為10。該參數(shù)定義了一個(gè)百分比。當(dāng)內(nèi)存中的臟數(shù)據(jù)超過(guò)這個(gè)百分比后,系統(tǒng)使用異步方式刷盤(pán)。
  • vm.dirty_ratio,默認(rèn)值為30。同樣定義了一個(gè)百分比,當(dāng)內(nèi)存中的臟數(shù)據(jù)超過(guò)這個(gè)百分比后,系統(tǒng)使用同步方式刷盤(pán),寫(xiě)請(qǐng)求被阻塞,直到臟數(shù)據(jù)低于dirty_ratio。如果還高于dirty_background_ratio,則切換到異步方式刷盤(pán)。因此 dirty_ratio 應(yīng)高于dirty_background_ratio。

除了通過(guò)百分比控制,還可以指定過(guò)期時(shí)間:vm.dirty_expire_centisecs,默認(rèn)值為3000(30秒),單位為百分之1秒,超過(guò)這個(gè)時(shí)間后,臟數(shù)據(jù)被異步刷盤(pán)。

可以通過(guò)下面的命令查看系統(tǒng)當(dāng)前的臟頁(yè)數(shù)量:

cat /proc/vmstat |egrep "dirty|writeback"
nr_dirty 951
nr_writeback 0
nr_writeback_temp 0
#輸出顯示有951個(gè)臟頁(yè)等待寫(xiě)到磁盤(pán)。默認(rèn)情況下每頁(yè)大小為4KB。另外,也可以在/proc/meminfo文件中看到這些信息。

如果數(shù)據(jù)安全性要求沒(méi)有那么高,想要多“cache”一些數(shù)據(jù),讓讀取更容易命中cache,則可以增加臟數(shù)據(jù)占比和過(guò)期時(shí)間:

vm.dirty_background_ratio = 30
vm.dirty_ratio = 60
vm.dirty_expire_centisecs = 6000

同理,如果不希望因?yàn)樗⒈P(pán)導(dǎo)致io被阻,可適當(dāng)減少異步刷盤(pán)的數(shù)值,這樣可以讓io更加平滑:

vm.dirty_background_ratio = 5
vm.dirty_ratio = 60

以上就是Linux 系統(tǒng)優(yōu)化的一些建議(內(nèi)核優(yōu)化)的詳細(xì)內(nèi)容,更多關(guān)于Linux 系統(tǒng)優(yōu)化的資料請(qǐng)關(guān)注本站其它相關(guān)文章!

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開(kāi)通

自選配置、實(shí)時(shí)開(kāi)通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專(zhuān)屬顧問(wèn)服務(wù)

1對(duì)1客戶咨詢(xún)顧問(wèn)

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部