Linux 高併發下效能優化

2021-09-26 04:05:49 字數 1764 閱讀 6311

ulimit用於shell啟動程序所占用的資源,  暫時地,適用於通過 ulimit 命令登入 shell 會話期間

vi /etc/profile   儲存後執行#source /etc/profile 使其生效

ulimit:顯示(或設定)使用者可以使用的資源的限制(limit),這限制分為軟限制(當前限制)和硬限制(上限),其中硬限制是軟限制的上限值,應用程式在執行過程中使用的系統資源不超過相應的軟限制,任何的超越都導致程序的終止。

引數 描述

ulimited 不限制使用者可以使用的資源,但本設定對可開啟的最大檔案數(max open files)

和可同時執行的最大程序數(max user processes)無效

-a 列出所有當前資源極限

-c 設定core檔案的最大值.單位:blocks

-d 設定乙個程序的資料段的最大值.單位:kbytes

-f shell 建立檔案的檔案大小的最大值,單位:blocks

-h 指定設定某個給定資源的硬極限。如果使用者擁有 root 使用者許可權,可以增大硬極限。任何使用者均可減少硬極限

-l 可以鎖住的物理記憶體的最大值

-m 可以使用的常駐記憶體的最大值,單位:kbytes

-n 每個程序可以同時開啟的最大檔案數

-p 設定管道的最大值,單位為block,1block=512bytes

-s 指定堆疊的最大值:單位:kbytes

-s 指定為給定的資源設定軟極限。軟極限可增大到硬極限的值。如果 -h 和 -s 標誌均未指定,極限適用於以上二者

-t 指定每個程序所使用的秒數,單位:seconds

-u 可以執行的最大併發程序數

-v shell可使用的最大的虛擬記憶體,單位:kbytes

表示開啟重用。允許將time-wait sockets重新用於新的tcp連線,預設為0,表示關閉

從協議設計上來看,對於time-wait狀態的sockets重用到新的tcp連線上來說,是安全的。(用於客戶端時的配置)

表示開啟tcp連線中time-wait sockets的快速**,預設為0,表示關閉

啟用time-wait狀態sockets的快速**,這個選項不推薦啟用。在nat(network address translation)網路下,會導致大量的tcp連線建立錯誤。

表示連線跟蹤資料庫(conntrack database),代表nat機器跟蹤連線的數目,連線跟蹤錶能容納多少記錄是被乙個變數控制的,它可由核心中的ip- sysctl函式設定。每乙個跟蹤連線表會占用350位元組的核心儲存空間,時間一長就會把預設的空間填滿,那麼預設空間時多少?我以redhat為例在記憶體為64mb的機器上時4096,記憶體為128mb是 8192,記憶體為256mb是16376,那末就能在/proc/sys/net/ipv4/ip_conntrack_max裡檢視、設定。

例如:增加到81920,可以用以下命令: 

echo "81920" >; /proc/sys/net/ipv4/ip_conntrack_max

那樣設定是不會儲存的,要重啟後儲存可以在/etc/sysctl.conf中加: 

net.ipv4.ip_conntract_max =81920

按照此方法改變後一切正常,要是在滿了可以加大其值.

機器上的swap空間太大,但是由於硬碟io較慢,所以決定做一些優化:調小swap,然後盡可能的"禁用"swap。

ulimit -c 0 不產生core檔案

ulimit -c 100 設定core檔案最大為100k

ulimit -c unlimited 不限制core檔案大小

高併發下的nginx優化

網際網路分布式架構設計,提高系統併發能力的方式主要有兩種 垂直擴充套件 scale up 與水平擴充套件 scale out 垂直擴充套件 提公升單機處理能力。垂直擴充套件的方式又有兩種。增強單機硬體效能 提公升單機架構效能 水平擴充套件 增加伺服器,集群。在網際網路業務發展非常迅猛的早期,如果預算...

高併發下投標過程進行優化

業務流程 對於乙個融資標的invest表,標的id,標的總融資金額 total money 已投資金額 invested money 滿標時間 finish invest time 標的狀態 status 假如有多個使用者user同時投標,投資金額為m,為保證資料一致性,以下步聚在同乙個事務當中 1...

高併發下RPC通訊優化路徑

選擇合適的通訊協議 基於 tcp 協議實現的 socket 通訊是有連線的,而傳輸資料是要通過三次握手來實現資料 傳輸的可靠性,且傳輸資料是沒有邊界的,採用的是位元組流模式。基於 udp 協議實現的 socket 通訊,客戶端不需要建立連線,只需要建立乙個套接字傳送 資料報給服務端,這樣就不能保證資...