轉自:https://blog.csdn.net/twypx/article/details/80290764 磁盤子系統的調優linux
磁盤在LAMP架構中扮演着重要的角色,靜態文件、模板和代碼都來自磁盤,組成數據庫的數據表和索引也來自磁盤,對磁盤的許多調優(尤爲是對數據庫)集中於避免磁盤訪問,由於磁盤訪問的延遲至關高,所以,花一些時間對磁盤硬件進行優化是有意義的。shell
首先要作的是,確保在文件系統上禁用atime日誌記錄特性。atime是最近訪問文件的時間,每當訪問文件時,底層文件系統必須記錄這個時間戳,由於系統管理員不多使用atime,禁用它能夠減小磁盤訪問時間。數據庫
禁用atime特性的方法是,在/etc/fstab的第四列中添加noatime選項。bash
有多種磁盤硬件組合,並且linux不必定可以探測出訪問磁盤的最佳方式,可使用hdparm命令查明和設置用來訪問IDE磁盤的方法。session
hdparm -t /path/to/device執行速度測試,能夠將這個測試結果做爲性能基準。爲了使得結果儘量準確,在運行這個命令時系統應該是空閒的。架構
例如在/dev/hd上執行的速度測試:ssh
hdparm的經常使用選項:socket
-vi 向磁盤查詢它支持的設置以及它正在使用的設置
-c 查詢/啓用(E)IDE 32位I/O支持。hdparm -c 1 /dev/hda啓用這個設置
-m 查詢/設置每中斷多扇區模式。若是設置大於0,設置值就是每一箇中斷能夠傳輸的最大扇區數量
-d 1 -X 啓用直接內存訪問(DMA)傳輸並設置IDE傳輸模式。
必須將有幫助的設置添加到啓動腳本中,好比rc.local性能
文件子系統的調優
ulimit -a用來顯示當前的各類用戶進程限制。
Linux對於每一個用戶,系統限制其最大進程數,爲提升性能,能夠根據設備資源狀況,設置各個linux用戶的最大進程數,下面我把某linux用戶的最大進程數設爲10000個:測試
ulimit -u 10000
1
對於須要作許多socket鏈接並使它們處於打開狀態的Java應用程序而言,最好經過使用ulimit -n xx修改每一個進程可打開的文件數,缺省值是1024.ulimit -n 4096將每一個進程能夠打開的文件數目加大到4096,缺省爲1024。
其餘建議設置爲無限制(unlimited)的一些重要設置是:
數據段長度: ulimit -d unlimited
最大內存大小: ulimit -m unlimited
堆棧大小: ulimit -s unlimited
CPU時間: ulimit -t unlimited
虛擬內存: ulimit -v unlimited
以上命令只是暫時地,適用於經過ulimit命令登陸shell會話期間。
永久地,經過將一個相應的ulimit語句添加到由登陸shell讀取的文件中,即特定於shell的用戶資源文件,如:
解除Linux系統的最大進程數和最大文件打開數限制
vi /etc/security/limits.conf
# 添加以下的行
* soft noproc 11000
* hard noproc 11000
* soft nofile 4100
* hard nofile 4100
說明:
*表明針對全部用戶
noproc表明最大進程數
nofile 達標最大文件打開數
讓SSH接受Login程式的登入,方便在ssh客戶端查看ulimit -a資源限制
vi /etc/ssh/sshd_config
# 把 UserLogin的值改成yes,並把#註釋去掉
# 重啓sshd服務:
/etc/init.d/sshd restart
1
2
3
4
5
修改全部linux用戶的環境變量文件
vi /etc/profile
ulimit -u 10000
ulimit -n 4096
ulimit -d unlimited
ulimit -m unlimited
ulimit -s unlimited
ulimit -t unlimited
ulimit -v unlimited
有時候在程序裏面須要打開多個文件,進行分析,系統通常默認數量是1024,對於正常使用時夠了,可是對於程序來說,就太少了,須要修改2個文件:
修改/etc/security/limits.conf
vi /etc/security/limits.conf
加上:
* soft nofile 8192
* hard nofile 20480
修改/etc/pam.d/login
session required /lib/security/pam_limits.so
1
另外,確保/etc/pam.d/system-auth文件有下面內容
session required /lib/security/$ISA/pam_limits.so
1
這一行確保系統會執行這個限制。
通常用戶的 .bash_profile
ulimit -n 10241從新登陸OK。