關於線上優化服務器視頻筆記1-----調優線上服務器

linux服務器調優的經驗

目錄:

1、系統故障排除思路

重視報錯信息

永遠不要忘記日誌文件

分析、定位、解決問題

 

2、影響linux性能的因素

服務器硬件因素

操作系統的相關因素

程序因素

 

3、系統性能優化工具

Cpu性能優化工具 vmstatiostasar

內存性能檢測工具 free,top,sar,pidstat

磁盤性能評估工具 iostat,sar

網絡性能分析工具 ping,mtr,netstat

 

4、系統性能分析與標準

 

5、性能調優的思路與技巧分享

幾個故障鼓勵案例和性能優化案例

Su命令切換用戶導致的問題

磁盤突然變成只讀怎麼處理

基於動、靜態網站的優化案例

 

 

一、Linux故障排除思路

1、重視報錯提示信息

每個錯誤的出現,都是給出錯誤提示信息,一般情況下這個提示基本定位了問題所在,因此一定要重視這個報錯信息,如果對這些錯誤信息視而不見,問題永遠得不到解決。

 

2、永遠不要忘記日誌文件

日誌排查問題的第一思路,一定要學會查看日誌的習慣。

系統日誌:dmesg/var/log/messages/var/log/secure(登錄日誌文件)

 

應用日誌:

Apache$APACHE_BASE/logs/error_log $APACHE_BASE/logs/access_log

Nginx$NGINX_BASE/logs/error_log $NGINX_BASE/logs/access_log

Tomcat: $TOMCAT_BASE/logs/catalina.out

 

 

3、分析,定位問題,解決問題

綜合分析過程,要以日誌爲導向,配合應用環境,根據報錯信息,排除故障。

 

4、網絡故障排除思路

(1)網絡硬件傳輸問題

(2)檢查網卡是否能正常工作,可以從網卡是否正常加載,網卡IP設置是否正確

(3)檢查DNS是否設定正確

(4)服務是否正常工作

(5)訪問權限是否打開(iptables/selinux

(6)局域網主機之間聯機是否正常

 

二、影響Linux性能各種因素

1、系統硬件資源

(1)CPU

如何判斷多核CPU與超線程

消耗CPU的業務:動態web服務、mail服務

 

(2)內存

物理內存與swap的取捨

選擇64位與Linux系統

消耗內存的業務:內存數據庫(redis/hbase/mongdb

 

(3)磁盤IO

RAID 技術(RAID 0/1/5/01/10

SSD 磁盤

消耗磁盤的業務:數據庫服務器

 

(4)網絡帶寬

網卡/交換機的選擇

操作系統的雙網卡綁定

消耗帶寬的業務:hadoop平臺、視頻業務的平臺

 

2、操作系統相關資源

(1)系統安裝優化

磁盤分區、RAID設置、swap設置

 

(2)內核參數優化

Ulimit -n(最大打開文件數)

Ulimit -u (最大用戶數)

 

(3)文件系統優化

Ext2linux下標準文件系統,無日誌記錄(inode)功能

Ext3:ext2基礎上增加了日誌記錄功能(inode),僅支持3200個子目錄

Ext4:在ext3的後續版本、linux2.6.28內核開始支持,無限子目錄支持,快速fsck

Xfs:高性能文件系統,linux3.10內核開始默認支持

 

建議:

讀操作頻繁,同時小文件衆多的應用,首選ext4文件系統,接下來是xfsext3

寫操作頻繁的應用,首選是xfs,接下來依次是ext4ext3

對性能要求不高、數據安全要求不高的業務、ext3是比較好的選擇

 

三、Linux性能優化工具

 

1、cpu性能評估工具

(1)vmstat(系統自帶工具)

利用vmstat命令可以對操作系統的內存信息、進程狀態、CPU活動等

常用方式:vmstat  3 5

表示每3秒更新一次輸出信息,統計5秒後停止輸出

 

(2)iostat(需要安裝sysstat工具包)

IostatI/O statistics(輸入/輸出統計)的縮寫,主要的功能是對系統的磁盤I/O操作進行監視

常用方式:iostat -c 3 5

其中,-c表示顯示CPU的使用情況,-d:顯示磁盤的使用情況

 

(3)uptime命令

Uptime是監控系統性能最常用的一個命令,主要用來統計系統當前的運行狀況,輸出的信息依次爲:系統現在的時間、系統上次開機到現在運行了多長時間、系統目前有多少登錄用戶、系統在一分鐘內、五分鐘內、十五分鐘內的平均負載。

 

2、內存性能評估

(1)free命令

Free命令是監控linux內存使用狀況最常用的指令

常見用法: free -m

 

(2)sar/pidstat

此兩個命令主要用於監控全部或指定進程佔用系統的情況,如CPU,內存、設備IO

此三個共用參數:-(獲取CPU狀態)-r(獲取內存狀態)、-d(獲取磁盤)

常用組合:

Sar -u 3 獲取cpu3秒內的狀態

Pidstat -r -p 1 3獲取內存3秒內的狀態(獲取指定的進程id)

 

3、網絡性能評估

(1)ping命令

(2)Netstat 命令

Netstat -i(查看網絡接口情況)

Netstat -r(查看路由情況)

 

(3)mtr/traceroute 命令

跟蹤網絡路由狀態,推薦使用mtr,動態跟蹤網絡路由,用於排除網絡問題十分方便

 

四、系統性能分析標準

影響性能因素評判標準

 糟糕

CPUuser%+sys%<70%user%+sys%=85user%+sys%>=90

內存Swap INsi=0Per CPU with 10 page/sMoreSwap In & Swap Out

Swap Out(so)=0

磁盤iowait%<20%iowait%=35%iowait%>=50

 

五、幾個故障處理和優化案例

1、系統ing無法執行su操作

問題現象:

Su : warning :cannot change directory to /home/people:Permission denied

Su:/bin/bash:Permission denied

 

解決思路:

從上面錯誤提示可知是權限出現了問題,那麼可以從權限入手進行排查,基本思路如下:

用戶目錄/home/people權限問題

Su 程序執行權限問題  ll /bin/su

程序依賴的共享庫權限的問題 ldd /bin/su

Selinux問題導致 getentforce

系統根空間問題

 

最終解決方法:

發現根目錄的權限問題

(注意解決思路)

 

2、Read-only file system 問題分析與解決

 

問題現象:網站無法添加內容

 

解決思路:

網站程序可能出現問題

磁盤出現問題

文件系統問題

 

解決方法:

卸載磁盤分區,用fsck命令修復磁盤分區

 

3、基於動態、靜態內容結合的網站優化案例

硬件:DELL R710 3臺,32GB內存、CPU 28核、磁盤 SATA 600GB+2TB

軟件環境:nginx+tomcat 架構,通過nginx做負載均衡

現象描述:平時訪問量小時,網站正常,當訪問量稍大時,網站訪問很慢,網站搞活動時,基本處於無法打開狀態,而nginx服務器帶寬佔最高在30M左右,後端2tomcat服務器佔用帶寬佔用也在30M左右

 

分析問題:

(1)硬件、系統方面

(2)網絡方面

(3)軟件架構方面

(4)程序配置方面

 

步驟:分發用戶請求-網站動靜資源分離

解決問題:

 

(2) 網站動、靜態分離

Location ~*\.(gif|jpg|png|js|css)${

Root /data/static/images/ROOT;

}

Nginx 中的location匹配規則

首先匹配=,其次匹配^~,然後是按文件中順序的正則匹配,最後是交給/通用匹配。當匹配成功時候,停止匹配,按當前匹配規則處理請求

 

(3)Tomcat JVM參數優化

優化參數:

-server -Xms3550m -Xmx3550m -Xmn1g -XX:PermSize=256m -XX:MaxPermSize=512m

 

整個堆內存大小 = 年輕代大小 + 年老代大小 + 持久代大小

 

-Xms3550m:設置JVM最大內存3550m

-Xmx3550m:設置JVM初始堆內存3550M

-Xmn2g:設置堆內存年輕代大小爲2G.。整個堆內存大小 = 年輕代大小 + 年老代大小 + 持久代大小。持久代一般固定大小爲64m,所以增大年輕代後,將會減小年輕待大小。此值對系統性能影響較大

-XXPermSize=256m :設置堆內存持久代初始值爲256m

-XXMaxPermSize=512m:設置持久代最大值爲512m

 

學習心得:

對於調優線上服務器的原則就是結合業務的需求,對發生的問題要結合日誌解決問題,查找根源發生的問題。解決問題時需要注重思路的養成,方便以後處理相關類似問題。

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章