一、上節回顧 上一節,我們一起學習了如何分析網絡丟包的問題,特別是從鏈路層、網絡層以及傳輸層等主要的協議棧中進行分析。 不過,通過前面這幾層的分析,我們還是沒有找出最終的性能瓶頸。看來,還是要繼續深挖才可以。今天,我們就來繼續分析這個未果的案例。 在開始下面的內容前,你可以先回憶一下上節課 ...
一 內存的分配和回收 管理內存的過程中,也很容易發生各種各樣的 事故 , 對應用程序來說,動態內存的分配和回收,是既核心又復雜的一的一個邏輯功能模塊。管理內存的過程中,也很容易發生各種各樣的 事故 , 比如,沒正確回收分配后的內存,導致了泄漏。訪問的是已分配內存邊界外的地址,導致程序異常退出,等等。 你在程序中定義了一個局部變量,比如一個整數數組 int data ,就定義了一個可以存儲 個整數的 ...
2019-09-03 12:00 0 433 推薦指數:
一、上節回顧 上一節,我們一起學習了如何分析網絡丟包的問題,特別是從鏈路層、網絡層以及傳輸層等主要的協議棧中進行分析。 不過,通過前面這幾層的分析,我們還是沒有找出最終的性能瓶頸。看來,還是要繼續深挖才可以。今天,我們就來繼續分析這個未果的案例。 在開始下面的內容前,你可以先回憶一下上節課 ...
問題 1: 使用 perf 工具時,看到的是 16 進制地址而不是函數名 1、分析過程 在 CentOS 系統中,使用 perf 工具看不到函數名,只能看到一些 16 進制格式的函數地址。 其實 ...
一、關於上下文切換的幾個為什么 1、 上下文切換是什么? 上下文切換是對任務當前運行狀態的暫存和恢復 2、 CPU為什么要進行上下文切換? 當多個進程競爭CPU的時候,CPU為了保證每個進程能 ...
一、環境准備 1、在第6節的基礎上安裝dstat wget http://mirror.centos.org/centos/7/os/x86_64/Packages/dstat-0.7.2- ...
一、上節回顧 前面內容,我們學習了 Linux 網絡的基礎原理以及性能觀測方法。簡單回顧一下,Linux網絡基於 TCP/IP 模型,構建了其網絡協議棧,把繁雜的網絡功能划分為應用層、傳輸層、網絡層、網絡接口層等四個不同的層次,既解決了網絡環境中設備異構的問題,也解耦了網絡協議的復雜性 ...
一、上節回顧 上一節,我帶你一起學習了網絡性能的評估方法。簡單回顧一下,Linux 網絡基於 TCP/IP協議棧構建,而在協議棧的不同層,我們所關注的網絡性能也不盡相同。 在應用層,我們關注的是應用程序的並發連接數、每秒請求數、處理延遲、錯誤數等,可以使用 wrk、Jmeter 等工具,模擬 ...
一、上節回顧 上一節,我以 ksoftirqd CPU 使用率高的問題為例,帶你一起學習了內核線程 CPU 使用率高時的分析方法。先簡單回顧一下。 當碰到內核線程的資源使用異常時,很多常用的進程級性能工具,並不能直接用到內核線程上。這時,我們就可以使用內核自帶的 perf 來觀察它們的行為 ...
一、上節回顧 上一節,我們學習了碰到分布式拒絕服務(DDoS)的緩解方法。簡單回顧一下,DDoS利用大量的偽造請求,導致目標服務要耗費大量資源,來處理這些無效請求,進而無法正常響應正常用戶的請求。 由於 DDoS 的分布式、大流量、難追蹤等特點,目前確實還沒有方法,能夠完全防御DDoS 帶來 ...