↓推薦關(guān)注↓和CPU、內(nèi)存一樣,磁盤和文件系統(tǒng)的管理,也是操作系統(tǒng)最核心的功能。磁盤為系統(tǒng)提供了最基本的持久化存儲。文件系統(tǒng)則在磁盤的基礎(chǔ)上,提供了一個用來管理文件的樹狀結(jié)構(gòu)。那么,磁盤和文件系統(tǒng)是怎么工作的呢?又有哪些指標(biāo)可以衡量它們的性能呢?索引節(jié)點(diǎn)和目錄項(xiàng)文件系統(tǒng),本身是對...
前言今天我們來深度解密一下負(fù)載均衡器LVS的秘密,相信大家看了你管這破玩意兒叫負(fù)載均衡?這篇文章后,還是有不少疑問,比如LVS看起來只有類似路由器的轉(zhuǎn)發(fā)功能,為啥說它是四層(傳輸層)負(fù)載均衡器呢,今天我們就來逐漸揭開LVS的迷霧,本文將會用圖解的方式淺入深地探討LVS的工作機(jī)制最...
在ModernC之前,C無疑是個更容易寫出坑的語言,無論從開發(fā)效率,和易坑性,讓很多新手望而卻步。比如內(nèi)存泄露問題,就是經(jīng)常會被寫出來的坑,本文就讓我們一起來看看,這些讓現(xiàn)在或者曾經(jīng)的C程序員淚流滿面的內(nèi)存泄露場景吧。你是否有踩過?1.函數(shù)內(nèi)或者類成員內(nèi)存未釋放這類問題可以稱之為...
花了一下午(或一天)在試圖解決某個Bug,后來才知道解決方案很簡單,當(dāng)時(shí)就是沒有想到。有個同事正好路過,看到你愁眉苦臉的,問你“怎么了呀?”“噢,是這樣的。我遇到了一個問題,點(diǎn)擊這個控件的時(shí)……”當(dāng)你正準(zhǔn)備和同事詳細(xì)解釋的時(shí)候,突然靈光一現(xiàn),你話都沒說完,就中斷了和同事的傾訴,繼...
導(dǎo)讀:對于工程經(jīng)驗(yàn)比較豐富的同學(xué),并發(fā)應(yīng)該也并不是陌生的概念了,但是每個人所理解的并發(fā)問題,卻又往往并不統(tǒng)一,本文系統(tǒng)梳理了百度C工程師在進(jìn)行并發(fā)優(yōu)化時(shí)所作的工作。一、背景簡單回顧一下,一個程序的性能構(gòu)成要件大概有三個,即算法復(fù)雜度、IO開銷和并發(fā)能力。由于現(xiàn)代計(jì)算機(jī)體系結(jié)構(gòu)復(fù)雜...
最近在做一個項(xiàng)目,遇到一個問題,運(yùn)行于ARM上的threadx在與DSP通信采用消息隊(duì)列的方式傳遞消息(最終實(shí)現(xiàn)原理是中斷共享內(nèi)存的方式),在實(shí)際操作過程中發(fā)現(xiàn)threadx總是crash,于是經(jīng)過排查,是因?yàn)閭鬟f消息的結(jié)構(gòu)體沒有考慮字節(jié)對齊的問題。隨手整理一下C語言中字節(jié)對齊的...
socketfd長什么樣子?什么是socketfd?粗糙的來講,就是網(wǎng)絡(luò)fd,比如我們最常見的C/S客戶端服務(wù)端的編程模式,就是網(wǎng)絡(luò)通信的一種方式。撇開底層和協(xié)議細(xì)節(jié),網(wǎng)絡(luò)通信和文件讀寫從接口上有本質(zhì)區(qū)別嗎?其實(shí)沒啥區(qū)別,不就是讀過來和寫過去嘛,簡稱IO。我們先看一下socket...
近期遇到一個問題,簡單點(diǎn)說,主機(jī)A上顯示一條ESTABLISHED狀態(tài)的TCP連接到主機(jī)B,而主機(jī)B上卻沒有任何關(guān)于主機(jī)A的連接信息,經(jīng)查明,這是由于主機(jī)A和主機(jī)B的發(fā)送/接收緩沖區(qū)差異巨大,導(dǎo)致主機(jī)B進(jìn)程退出后,主機(jī)A暫時(shí)憋住,主機(jī)B頻繁發(fā)送零窗口探測,F(xiàn)IN_WAIT1狀態(tài)超...
【導(dǎo)語】:開源的在線流程圖繪制工具。簡介Wireflow是一個免費(fèi)的、開源的在線流程圖繪制工具,用于創(chuàng)建漂亮的流程圖,無需Photoshop技能。支持使用100多種自定義圖形、可進(jìn)行多人協(xié)作、權(quán)限分配、實(shí)時(shí)聊天等功能,并擁有豐富的功能組件庫。Wireflow的誕生是為了在項(xiàng)目規(guī)劃...
↓推薦關(guān)注↓前言:一直是想知道一條SQL語句是怎么被執(zhí)行的,它執(zhí)行的順序是怎樣的,然后查看總結(jié)各方資料,就有了下面這一篇博文了。本文將從MySQL總體架構(gòu)--->查詢執(zhí)行流程--->語句執(zhí)行順序來探討一下其中的知識。一、MySQL架構(gòu)總覽:架構(gòu)最好看圖,再配上必要的說明文字。下圖...
↓推薦關(guān)注↓hi,大家好,由于移動互聯(lián)網(wǎng)不斷發(fā)展,導(dǎo)致網(wǎng)絡(luò)流量徒增,推動著網(wǎng)絡(luò)技術(shù)不斷地發(fā)展,而CPU的運(yùn)行頻率基本停留在10年前的水平,為了迎接超高速網(wǎng)絡(luò)技術(shù)的挑戰(zhàn),軟件也需要大幅度創(chuàng)新,結(jié)合硬件技術(shù)的發(fā)展,DPDK(DataPlaneDevelopmentKit),一個以軟件...
↓推薦關(guān)注↓從Linux內(nèi)核3.15開始,您可能一直在關(guān)注內(nèi)核社區(qū)中擴(kuò)展的BerkeleyPacketFilter(eBPF)的開發(fā),或者您可能仍然將BerkeleyPacketFilter與VanJacobson在1992年所做的工作聯(lián)系起來。您可能已經(jīng)使用BPF和tcpdum...
↓推薦關(guān)注↓1.PageCache1.1PageCache是什么?為了理解PageCache,我們不妨先看一下Linux的文件I/O系統(tǒng),如下圖所示:Figure1.Linux文件I/O系統(tǒng)上圖中,紅色部分為PageCache。可見PageCache的本質(zhì)是由Linux內(nèi)核管理的...
↓推薦關(guān)注↓看完后不再迷茫!在校學(xué)生的編程語言和數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)還不錯,我認(rèn)為應(yīng)該在《操作系統(tǒng)》和《計(jì)算機(jī)體系結(jié)構(gòu)》這兩門課上下功夫,然后才去讀編程方面的APUE、UNP等書。下面簡單談?wù)勎覍W(xué)習(xí)這兩門課的看法和建議,都是站在服務(wù)端程序員的角度,從實(shí)用主義(pragmatic)的立...
socketfd長什么樣子?什么是socketfd?粗糙的來講,就是網(wǎng)絡(luò)fd,比如我們最常見的C/S客戶端服務(wù)端的編程模式,就是網(wǎng)絡(luò)通信的一種方式。撇開底層和協(xié)議細(xì)節(jié),網(wǎng)絡(luò)通信和文件讀寫從接口上有本質(zhì)區(qū)別嗎?其實(shí)沒啥區(qū)別,不就是讀過來和寫過去嘛,簡稱IO。我們先看一下socket...