也有因為大量的死套接字而記憶體溢位的風險,fin- wait-2的危險性比fin-wait-1要小,
因為它最多只能吃掉1.5k記憶體,但是它們的生存期長些。
6 記憶體的調優
記憶體子系統的調優不是很容易,需要不停地監測來保證記憶體的改變不會對伺服器的其他子系統造成負面影響。
如果要改變虛擬記憶體引數(在/proc/sys/vm),建議您每次只改變乙個引數然後監測效果。對與虛擬記憶體的調整包括以下幾個專案:
_ 配置linux核心如何更新dirty buffers到磁碟。磁碟緩衝區用於暫存磁碟的資料。
相對於記憶體來講,磁碟緩衝區的速度很慢。因此,如果伺服器使用這類記憶體,效能會成問題。當緩衝區內的資料完全dirty,
使用:sysctl -w vm.bdflush="30 500 0 0 500 3000 60 20 0"
vm.bdflush有9個引數,但是建議您只改變其中的3個:
1 nfract, 為排隊寫入磁碟前,bdflush daemon允許的緩衝區最大百分比
2 ndirty, 為bdflush即刻寫的最大緩衝區的值。如果這個值很大,bdflush需要更多的時間完成磁碟的資料更新。
3 nfract_sync, 發生同步前,緩衝區變dirty的最大百分比。
配置kswapd daemon,指定linux的記憶體交換頁數量
sysctl -w vm.kswapd="1024 32 64"
三個引數的描述如下:
– tries_base 相當於核心每次所交換的「頁」的數量的四倍。對於有很多交換資訊的系統,增加這個值可以改進效能。
– tries_min 是每次kswapd swaps出去的pages的最小數量。
– swap_cluster 是kswapd 即刻寫如的pages數量。數值小,會提高磁碟i/o的效能;數值大可能也會對請求佇列產生負面影響。
如果要對這些引數進行改動,請使用工具vmstat檢查對效能的影響。其它可以改進效能的虛擬記憶體引數為:
_ buffermem
_ freepages
_ overcommit_memory
_ page-cluster
_ pagecache
_ pagetable_cache
7 上面對 物理層 網路層 傳輸層 的優化,應用層的優化也是不可缺少的,就是針對服務的優化了。
./configure --prefix=/usr/local/mysql-5.0.89/
--with-unix-socket-path=/tmp/mysql.sock --localstatedir=/usr/local/mysql-5.0.89/data \
--without-debug \ //去除debug模式
--enable-thread-safe-client \ //以執行緒方式編譯客戶端
--enable-assembler \ //使用一些字元函式的彙編版本
--enable-profiling \ //編譯乙個版本帶有查詢取樣**
--enable-community-features \ //停用附加功能提供的使用者社群
--with-mysqld-ldflags=-all-static \ // 以純靜態方式編譯服務端
--with-client-ldflags=-all-static \ // 以純靜態方式編譯客戶端
--with-charset=latin1 \ //預設編碼拉丁文
--with-extra-charset=utf8,gbk \ //支援編碼的格式
--with-innodb \ //支援innodb表
--with-scv-storage-engine \ //使用scv儲存引擎
--with-mysqld-user=mysql \ //mysqld的守護程序使用者
--without-embedded-server \ //構建嵌入式伺服器
--with-server-suffix=-community //附加價值版本的字串
像mysql 編譯的時候就可以優化了 根據你的環境定製。
然後就是裝完後優化了例如nginx做web的優化:
worker_processes 8;
nginx 程序數,建議按照cpu 數目來指定,一般為它的倍數。
worker_rlimit_nofile 102400;
worker_rlimit_nofile 102400;
這個指令是指當乙個nginx 程序開啟的最多檔案描述符數目,理論值應該是最多開啟文
件數(ulimit -n)與nginx 程序數相除,但是nginx 分配請求並不是那麼均勻,所以最好與ulimit
-n 的值保持一致
worker_connections 102400;
每個程序允許的最多連線數, 理論上每台nginx 伺服器的最大連線數為
worker_processes*worker_connections。
keepalive_timeout 60;
keepalive 超時時間。
client_header_buffer_size 4k;
客戶端請求頭部的緩衝區大小,這個可以根據你的系統分頁大小來設定,一般乙個請求
頭的大小不會超過1k,不過由於一般系統分頁都要大於1k,所以這裡設定為分頁大小。分
頁大小可以用命令getconf pagesize 取得
open_file_cache max=102400 inactive=20s;
這個將為開啟檔案指定快取,預設是沒有啟用的,max 指定快取數量,建議和開啟檔案
數一致,inactive 是指經過多長時間檔案沒被請求後刪除快取。
open_file_cache_valid 30s;
這個是指多長時間檢查一次快取的有效資訊。
open_file_cache_min_uses 1;
open_file_cache 指令中的inactive 引數時間內檔案的最少使用次數,如果超過這個數字,文
件描述符一直是在快取中開啟的,如上例,如果有乙個檔案在inactive 時間內一次沒被使用,
它將被移除。
其實還有就不一一枚舉了
最近很多問我 apache的優化引數 :prefork模式的
startservers 100
serverlimit 2000
maxclients 1000
minspareservers 20
maxspareservers 50
maxrequestsperchild 10000
具體看其實系統的調優是根據自己的個人環境和要求調整的,比例說你公司的硬體不能滿足 優化的就可以低一點那也是沒辦法,
我們只要盡量把當前的環境優化到極致就可以了。像把一台web 伺服器 優化到正常訪問量 達到100mb左右 那就相當不錯。
本文出自 「學習要永恆
」 部落格,請務必保留此出處
Linux系統優化
最近很多問我 apache的優化引數 prefork模式的 startservers 100 serverlimit 2000 maxclients 1000 minspareservers 20 maxspareservers 50 maxrequestsperchild 10000 具體看其實系...
linux系統優化
1 新增普通使用者賬戶 2 更改ssh伺服器端遠端登陸的配置 建議新增2塊網絡卡,1塊內網,1塊外網 外網保持現有ip不變,內網可以使用10.10.0.x 例如 10.10.6.61保持不變,增加內網10.10.0.61,用於內部訪問 vim sshd config 13 port 52113 修改...
Linux系統優化
root znix cat etc redhat release centos release 6.9 final root znix uname r 2.6.32 696.el6.x86 64 root znix uname m x86 64 root znix useradd clsn root...