效能之巔讀後記

2021-09-25 02:44:17 字數 2391 閱讀 8825

1.dtrace提供動態追蹤技術

2.mpstat -p -all 1 以1s間隔輸出所有cpu的當前狀態,包括使用者態使用時間、核心態使用時間、iowait比例、idle、irq硬體中斷耗時、soft軟體中斷耗時

3.vmstat

a.檢視系統記憶體狀態

procs/r 執行佇列的程序數+等待執行的程序數 procs/b 等待io的程序數量

memory/swpd 交換區 memory/free 空閒記憶體 /memory/buff 緩衝區記憶體大小 memory/cache 快取大小

swap/si 每秒從交換區寫到記憶體的大小,由磁碟調入記憶體 swap/so 每秒寫入交換區的記憶體大小,由記憶體調入磁碟

io/bi 每秒讀取的磁碟塊數

io/bo 每秒寫入磁碟的塊數

b.cpu狀態

c.磁碟讀寫 vmstat -d

4.cpu stall 是指cpu停止狀態,可能是資源競爭、讀記憶體、資料依賴等原因造成處理器流水線停頓

可以通過perf stat -a – sleep 10 檢視10s中cpu的執行狀態,其中關鍵指數為ipc,利用率應該為ipc / cpu核數 * 100%,即4核cpu ipc為3的話,利用率達到了75%

5.sar -b 1 以1s間隔輸出記憶體狀態 可以通過此命令來檢視詳細的記憶體效能狀況

pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgstreal/s vmeff

頁面換入 頁面換出 嚴重及輕微缺頁 嚴重缺頁 頁面加入空閒列表

頁面換入可能是從以對映的主存中換入 此為輕微缺頁,也可能之前該記憶體已經交換到磁碟現在從磁碟中換入 此為嚴重缺頁;

6.匿名換頁 檔案系統換頁

匿名換頁是指沒有對映到檔案的存進行換頁,指的是程序的私有資料:程序堆、棧,swap會將這些記憶體對映到swap檔案

檔案系統換頁 是指讀寫被對映到記憶體的檔案頁換入、換出;換入是要從硬碟讀取檔案到記憶體的page cache,換出時候要看這個page cache是否是dirty的,如果dirty需要寫回磁碟(將此任務提交到io佇列中去,等待io排程策略merge請求和刷到磁碟);如果非dirty則可以直接釋放。該過程是由核心執行緒pdflush不斷去檢查page cache的髒頁去做的(1.髒頁比例達到閾值 2.髒頁的生存時間超過閾值);

7.inode節點是檔案系統的meta資訊,儲存了檔案的群賢、時間戳、資料指標等

8.檔案io要經過多個cache,使用者程式呼叫libc的write將使用者程式的資料拷貝到libc的快取中,當快取達到一定數值或者關閉開啟的檔案時候才會呼叫系統呼叫write,系統呼叫write將使用者態的資料拷貝到核心態中的page cache中,然後返回使用者空間。因此write是個非同步的操作,什麼時候寫磁碟是由核心pdflush執行緒不停的去掃瞄page cache中髒頁的比例是否達到閾值或者髒頁存在的時間是否超限,如果達到條件則將任務塞入到io佇列中,核心中的io排程佇列根據策略進行請求merge、排序並決定何時寫入磁碟。而read操作則是乙個同步的過程,讀核心的page cache如果沒有資料,則要讀磁碟獲取資料。

檔案系統也提供了繞過這些cache的方法,通過mmap page cache到使用者態,使寫操作可以達到零拷貝。通過open時候帶上o_direct標記,使得進行raw寫入,可以繞開檔案系統直接作用於磁碟。還可以raw寫入,直接作用於磁碟扇區。

使用者直接呼叫sync則可以直接將dirty的page cache塞入io佇列,其作用是喚醒pdflush執行緒,並使其工作。

9.free 命令可以看到cache/buffer兩個指標,cache指的是page cache是檔案系統的快取,buffer是buffer cache是指繞過檔案系統直接寫磁碟塊的快取。

10.iostat -x 1 檢視磁碟的擴充套件資訊 可以看到tps—每秒的事務數(iops) 每秒讀取位元組數、每秒寫入位元組數、io利用率 io等待時間、平均請求的資料大小(單位為扇區)

iotop 可以分程序的對io進行展示

11.syn攻擊可以使用防火牆、加固tcp/ip協議棧如調整最大半連線數,縮短超時時間、增加backlog佇列,限制syn併發等

12.netstat -i 檢視介面狀態,成功的包數、錯誤的包數、丟包數、超限數,評估網路情況

13.traceroute www.***.com 可以看到本機到該**的路由

14.tcpdump -i eth4 -w /***.dump 可以抓到某個網口的資料報,https的解析不了

15.程序間通訊 可以使用管道、有名管道、訊號量、共享記憶體、網路套接字、通過檔案鎖達到同步;訊號量為多個程序去爭搶的資源,訊號量如果count為1,則類似於互斥鎖,如果不唯一則可以被多個程序獲取,未獲取的程序則被核心掛起到等待佇列,訊號量值不為0時候喚醒等待佇列中的程序。多個程序間可以通過共享記憶體(mmap) + 互斥鎖來進行同步,其中互斥鎖需要通過pthread_mutex_attr設定共享屬性。

《效能之巔》初識效能

效能是一門令人激動 富於變化的學科同時又充滿挑戰的學科。衡量效能乙個重要指標 延時 系統效能是對於整個系統進行研究,包括了所有的硬體元件和整個軟體棧。通用的軟體棧有哪些呢?包括作業系統 os 核心,資料庫和應用程式層。術語中的 全棧 有時候指的是程式應用環境,包含資料庫,應用程式,和 伺服器。效能通...

《浪潮之巔》讀後感

浪潮之巔 是一本難得的好書,重點講述的是矽谷it企業的發展歷程和變遷,分析了一些曾經輝煌的公司走向衰落的過程和原因,並講了關於風投的有關知識,裡面披露了很多知名it企業的很多發展過程中的細節。由於書是斷斷續續地看的,持續了有兩三個月,很多當時很清晰的印象已漸漸變的模糊,簡單的寫幾句吧。1 偉大的公司...

浪潮之巔讀後感

自己剛從廣電行業跳入網際網路,雖然說自己是計算機專業畢業而且也算是在it行業就業但是從心裡面感覺這次擇業跨度還是很大的,當務之急就是需呀了解一些網際網路的知識。網上推薦看一看浪潮之巔這本書,當時看了一下作者吳軍的介紹,感覺不錯就買了。我從買到看完花了3周時間,其實自己覺得花得時間有點長,但是總體覺的...