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

內(nèi)存瘋狂換頁(yè)!CPU怒批OS

商務(wù)辦公
瓶頸我是CPU一號(hào)車(chē)間的阿Q,前一陣子我們廠里發(fā)生了一件大喜事,老板拉到了一筆投資,準(zhǔn)備擴(kuò)大生產(chǎn)規(guī)模。

[[332148]]

 

本文轉(zhuǎn)載自微信公眾號(hào)「 編程技術(shù)宇宙 」,作者軒轅之風(fēng) 。轉(zhuǎn)載本文請(qǐng)聯(lián)系編程技術(shù)宇宙公眾號(hào)。

內(nèi)存訪問(wèn)

瓶頸我是CPU一號(hào)車(chē)間的阿Q,前一陣子我們廠里發(fā)生了一件大喜事,老板拉到了一筆投資,準(zhǔn)備擴(kuò)大生產(chǎn)規(guī)模。

不過(guò)老板挺摳門(mén)的,拉到了投資也不給我們漲點(diǎn)工資,就知道讓我們拼命干活,壓榨我們的勞動(dòng)力。

老板說(shuō)了,投資的錢(qián)要用來(lái)添置設(shè)備,招聘新員工,咱們?cè)瓉?lái)就有八個(gè)車(chē)間了,這一下直接double,變成了十六個(gè)!我們的工資要是也能double就好了···

 

現(xiàn)在我們變成了一個(gè)16核的CPU啦!

原以為我們生產(chǎn)效率也能double,沒(méi)想到卻遇到了新的問(wèn)題。

我們CPU里面各個(gè)車(chē)間訪問(wèn)內(nèi)存都要通過(guò)內(nèi)存控制器和總線系統(tǒng),有時(shí)候碰到幾個(gè)車(chē)間都要訪問(wèn)內(nèi)存,就得要競(jìng)爭(zhēng)。

 

以前我們八個(gè)車(chē)間的時(shí)候競(jìng)爭(zhēng)情況還不是很激烈,大家互相謙讓一下也就罷了?,F(xiàn)在變成了十六個(gè)車(chē)間都要過(guò)獨(dú)木橋,這競(jìng)爭(zhēng)一下就激烈了,尤其是我們這幫老員工基本不會(huì)讓著新來(lái)的,為了此事經(jīng)常發(fā)生不愉快。

內(nèi)存訪問(wèn)出現(xiàn)了瓶頸,這性能自然是折損嚴(yán)重。

NUMA架構(gòu)

老板把這一切都看在眼里,私下里找了我、二號(hào)車(chē)間的虎子還有總線主任開(kāi)了個(gè)小會(huì)。

 

“你們幾個(gè)都是廠里的核心員工,對(duì)廠里目前的問(wèn)題你們?cè)趺纯?”,老板問(wèn)我們幾個(gè)。

我和虎子互相瞅了瞅,都沒(méi)說(shuō)話。

這時(shí)總線主任開(kāi)口了:“老板,現(xiàn)在的問(wèn)題是訪問(wèn)內(nèi)存的路只有一條,大家都要來(lái)擠,難免會(huì)發(fā)生摩擦,影響工作性能。要想從根本解決問(wèn)題,最好再建一條路”

“再建一條路,什么意思?”

“我建議把新擴(kuò)建的那8個(gè)車(chē)間獨(dú)立出去,建一個(gè)分廠。然后再把內(nèi)存分一下,讓兩個(gè)廠各管理一部分。一來(lái)可以減少新老員工之間的矛盾,二來(lái)可以減少大家訪問(wèn)內(nèi)存擁擠造成的資源浪費(fèi)。再說(shuō)了,萬(wàn)一以后繼續(xù)擴(kuò)大規(guī)模還可以繼續(xù)用這個(gè)辦法”,總線主任繼續(xù)說(shuō)到。

 

領(lǐng)導(dǎo)正低頭思索,我倒是想到了一個(gè)問(wèn)題:“主任,要是我們一號(hào)核執(zhí)行的線程要訪問(wèn)的內(nèi)存頁(yè)面不在我們廠管理的內(nèi)存上,在他們分廠怎么辦呢?”

“嗯,這樣的話,兩個(gè)廠之間需要通信,如果訪問(wèn)的內(nèi)存不在自己管轄的范圍,就要互相幫忙傳遞一下”

老板拍了下桌子:“好主意!就這么辦!”

第二天,老板召集16個(gè)車(chē)間的代表,總線主任,還有操作系統(tǒng)那邊負(fù)責(zé)內(nèi)存管理的代表小李,一起開(kāi)了一個(gè)大會(huì),會(huì)上正式通過(guò)了新的技術(shù)方案。

 

還給這項(xiàng)技術(shù)取了一個(gè)名字:NUMA(Non Uniform Memory Access),非一致性內(nèi)存訪問(wèn)。

 

現(xiàn)有的16個(gè)車(chē)間拆分成兩個(gè)CPU工廠,叫做兩個(gè)NUMA節(jié)點(diǎn)(Node),每個(gè)節(jié)點(diǎn)直接連接一部分內(nèi)存,兩個(gè)節(jié)點(diǎn)之間有專門(mén)的的inter-connect通道。各節(jié)點(diǎn)直接訪問(wèn)自己管理的內(nèi)存叫Local Access,通過(guò)inter-connect通道訪問(wèn)其他分廠管理的內(nèi)存叫做Remote Access。很顯然,前者的訪問(wèn)速度要比后者快得多,所以這也是這項(xiàng)技術(shù)名字的由來(lái):非一致性內(nèi)存訪問(wèn)。

新的組織架構(gòu)調(diào)整過(guò)后,廠里的工作效率提升不少,矛盾摩擦也少了很多,又可以愉快的干活了。

操作系統(tǒng)支持

我們的組織架構(gòu)調(diào)整了,操作系統(tǒng)那邊可忙壞了。為了支持我們新的架構(gòu),操作系統(tǒng)不得不配合著做一些調(diào)整。

首先是緩存的問(wèn)題,操作系統(tǒng)的進(jìn)程&線程調(diào)度管理部門(mén)需要注意盡量不要跨NUMA節(jié)點(diǎn)進(jìn)行調(diào)度線程,不能讓一個(gè)線程一會(huì)兒在隔壁分廠運(yùn)行,一會(huì)兒又在我們廠運(yùn)行,這樣建立的緩存就失效了。

 

還有就是內(nèi)存親和性的問(wèn)題了,為了能得到更快的內(nèi)存訪問(wèn)速度,操作系統(tǒng)的內(nèi)存管理部門(mén)制定了一個(gè)內(nèi)存分配策略,線程在哪個(gè)NUMA節(jié)點(diǎn)內(nèi)執(zhí)行,那就把內(nèi)存分配到那個(gè)節(jié)點(diǎn)直接連接的內(nèi)存中,避免跨節(jié)點(diǎn)的內(nèi)存訪問(wèn)。

還別說(shuō),操作系統(tǒng)這么一優(yōu)化調(diào)整,工作效率真是提升了不少呢。

然而好景不長(zhǎng),就因?yàn)檫@個(gè)調(diào)整,新的問(wèn)題又雙叒叕出現(xiàn)了~~~

MySQL的問(wèn)題

最近一段時(shí)間,發(fā)生了一件怪事,不知道怎么回事,我們分廠管轄的內(nèi)存很快耗光了,但隔壁分廠管理的內(nèi)存還有很多空間。

操作系統(tǒng)不去分配那邊的內(nèi)存頁(yè)面,卻讓我們一個(gè)勁的把內(nèi)存頁(yè)面swap到硬盤(pán)上去,騰挪空間。我們花了大量時(shí)間在這上邊,搞得我們業(yè)績(jī)下滑,還比不上隔壁分廠那幫新人。

 

終于有一天,忍不了了,我伙同廠里幾個(gè)老家伙,把操作系統(tǒng)內(nèi)存管理部門(mén)的小李又叫來(lái)了。

“你們?cè)趺椿厥?,就不能分配隔壁二?hào)節(jié)點(diǎn)分廠管轄的內(nèi)存嗎,明明還有那么多空間,卻讓我們忙個(gè)不停”,我有點(diǎn)生氣。

小李滿臉無(wú)辜的說(shuō)到:“不瞞你們各位,前幾天有人來(lái)我們Linux帝國(guó)開(kāi)設(shè)了一家新公司,叫MySQL,這家伙是個(gè)吃內(nèi)存大戶啊,一上來(lái)就要吃掉幾十G,你們廠管轄的內(nèi)存大半都被它給吃掉了”

 

虎子問(wèn)到:“這跟我們有什么關(guān)系,你別推卸責(zé)任啊”

“上次我來(lái)開(kāi)會(huì),你們不是搞了個(gè)什么NUMA架構(gòu)嗎,訪問(wèn)本地連接的內(nèi)存要比訪問(wèn)遠(yuǎn)程內(nèi)存快一些嘛,所以我們制定了內(nèi)存親和性策略嘛,線程在哪個(gè)NUMA節(jié)點(diǎn)執(zhí)行,就把內(nèi)存分配到哪個(gè)節(jié)點(diǎn)直接連接的內(nèi)存,想著這樣能提升性能嘛”,小李繼續(xù)委屈的說(shuō)到。

“那也不能死腦筋啊,訪問(wèn)遠(yuǎn)程內(nèi)存雖然比不上訪問(wèn)本地內(nèi)存快,那也比一個(gè)勁的把頁(yè)面從內(nèi)存和硬盤(pán)上換來(lái)?yè)Q去的強(qiáng)啊,你真是好心辦壞事!”

被我們這樣一說(shuō),小李也意識(shí)到了這樣做的問(wèn)題,“我回去反饋一下大家的意見(jiàn),調(diào)整一下我們的策略”

過(guò)了幾天,操作系統(tǒng)那邊上了新的內(nèi)存分配策略,將內(nèi)存均勻的分配到各個(gè)NUMA節(jié)點(diǎn),我們?cè)僖膊挥每哟慰哟蔚陌褦?shù)據(jù)從內(nèi)存和硬盤(pán)之間搬來(lái)搬去了。

 

NUMA雖好,可要是用得不好,只會(huì)徒增煩惱啊~

 

責(zé)任編輯:武曉燕 來(lái)源: 編程技術(shù)宇宙
相關(guān)推薦

2020-12-23 10:48:18

LinuxOSCPU

2021-01-18 10:53:48

LinuxOSCPU

2017-12-28 12:38:29

Windows微軟服務(wù)器

2009-05-20 11:03:27

打字通假冒產(chǎn)品金山

2021-09-08 09:59:32

LinusGitHubLinux

2025-02-18 09:18:28

2021-06-28 10:37:33

Windows 11操作系統(tǒng)微軟

2015-03-04 11:43:27

信息安全航空信息安全

2019-12-10 14:51:00

CPU緩存內(nèi)存

2018-05-11 08:42:22

運(yùn)營(yíng)商流量提速降費(fèi)

2018-12-06 12:58:50

CPU內(nèi)存模塊

2019-07-10 05:08:05

CPU內(nèi)存分頁(yè)管理

2021-07-10 07:49:52

PythonRARMacOS

2017-09-14 11:49:21

內(nèi)存攢機(jī)存儲(chǔ)

2020-05-15 14:31:07

CPU分頁(yè)交換虛擬內(nèi)存

2014-06-13 09:57:18

瘋狂iOS游戲打飛機(jī)

2023-01-11 14:38:15

谷歌GPT

2024-11-19 11:27:53

2011-03-25 11:28:35

Cacti數(shù)據(jù)

2019-11-12 14:40:43

CPU緩存內(nèi)存
點(diǎn)贊
收藏

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