偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何使服務(wù)器性能優(yōu)化?

運(yùn)維 系統(tǒng)運(yùn)維
筆者介紹了服務(wù)器性能優(yōu)化配置的一些建議,其中包括服務(wù)配置建議、MySQL性能分析及建議、系統(tǒng)性能分析等內(nèi)容。

服務(wù)器性能優(yōu)化對(duì)于系統(tǒng)管理員來(lái)說(shuō)至關(guān)重要。提高服務(wù)器運(yùn)行速度,以及提高服務(wù)器的安全性能都是系統(tǒng)管理員所應(yīng)做的工作。下面是服務(wù)器性能優(yōu)化配置的建議,具體內(nèi)容如下所述。

很久以前在前公司給中企動(dòng)力那邊寫的服務(wù)器分析建議,其實(shí)就是一些簡(jiǎn)單參數(shù)調(diào)整仍后利用vmstat,top這些工具對(duì)系統(tǒng)性能做初步分析。

貼出來(lái)希望對(duì)朋友們學(xué)習(xí)有幫助,同時(shí)也歡迎朋友們補(bǔ)充![此文檔僅作參考和學(xué)習(xí),具體優(yōu)化比較復(fù)雜歡迎朋友們探討!]

一、服務(wù)器配置

先閱讀apache配置優(yōu)化建議如下,再對(duì)相關(guān)參數(shù)進(jìn)行調(diào)整,觀察服務(wù)器狀況.

Apache配置優(yōu)化建議:

進(jìn)入/usr/local/apache2/conf/extra目錄下

Apache優(yōu)化,

經(jīng)過(guò)上述操作后,Apache已經(jīng)能夠正常運(yùn)行。但是,對(duì)于訪問(wèn)量稍大的站點(diǎn),Apache的這些默認(rèn)配置是無(wú)法滿足需求的,我們?nèi)孕枵{(diào)整Apache的一些參數(shù),使Apache能夠在大訪問(wèn)量環(huán)境下發(fā)揮出更好的性能。以下我們對(duì)Apache配置文件httpd.conf中對(duì)性能影響較大的參數(shù)進(jìn)行一些說(shuō)明。

(1)Timeout該參數(shù)指定Apache在接收請(qǐng)求或發(fā)送所請(qǐng)求內(nèi)容之前的最長(zhǎng)等待時(shí)間(秒),若超過(guò)該時(shí)間Apache則放棄處理該請(qǐng)求,并釋放連接。該參數(shù)默認(rèn)值為120,推薦設(shè)置為60,對(duì)于訪問(wèn)量較大的網(wǎng)站可以設(shè)置為30或15。

(2)KeepAlive該參數(shù)控制Apache是否允許在一個(gè)連接中有多個(gè)請(qǐng)求,默認(rèn)打開(kāi)。但對(duì)于大多數(shù)論壇類型站點(diǎn)來(lái)說(shuō),通常設(shè)置為off以關(guān)閉該支持。

(3)MPM-prefork.c在默認(rèn)情況下Apache使用Prefork(進(jìn)程)工作模式,可以說(shuō)這部分的參數(shù)設(shè)置是對(duì)Apache性能影響的核心和關(guān)鍵。用戶可以在配置文檔中找到以下配置段:

  1. StartServers5  
  2.  
  3. MinSpareServers5  
  4.  
  5. MaxSpareServers10  
  6.  
  7. MaxClients15  
  8.  
  9. MaxRequestsPerChild0   
  10.  

這就是控制Apache進(jìn)程工作的配置段,為了更好的理解上述配置中的各項(xiàng)參數(shù),下面讓我們先了解一下Apache是如何控制進(jìn)程工作的。

我們知道,在Unix系統(tǒng)中,很多服務(wù)(Service)的守護(hù)進(jìn)程(Daemon)在啟動(dòng)時(shí)會(huì)創(chuàng)建一個(gè)進(jìn)程以準(zhǔn)備應(yīng)答可能的連接請(qǐng)求,服務(wù)即進(jìn)入了端口監(jiān)聽(tīng)狀態(tài),當(dāng)一個(gè)來(lái)自客戶端(Client)的請(qǐng)求被發(fā)送至服務(wù)所監(jiān)聽(tīng)的端口時(shí),該服務(wù)進(jìn)程即會(huì)處理該請(qǐng)求,在處理過(guò)程中,該進(jìn)程處于獨(dú)占狀態(tài),也就是說(shuō)如果此時(shí)有其他請(qǐng)求到達(dá),這些請(qǐng)求只能“排隊(duì)”等待當(dāng)前請(qǐng)求處理完成且服務(wù)進(jìn)程釋放。這樣就會(huì)導(dǎo)致越來(lái)越多的請(qǐng)求處于隊(duì)列等待狀態(tài),實(shí)際表現(xiàn)就是該服務(wù)處理能力非常低下。Apache使用Prefork模式很好的解決了這一問(wèn)題。

下面我們來(lái)看看Apache實(shí)際上是如何高效率工作的。

當(dāng)Apache啟動(dòng)時(shí),Apache會(huì)啟動(dòng)StartSpareServers個(gè)空閑進(jìn)程同時(shí)準(zhǔn)備接收處理請(qǐng)求,當(dāng)多個(gè)請(qǐng)求到來(lái)時(shí),StarSpareServers進(jìn)行會(huì)越來(lái)越少,當(dāng)空閑進(jìn)程減少到MinSpareServers個(gè)時(shí),Apache為了能夠繼續(xù)有充裕的進(jìn)程處理請(qǐng)求,它會(huì)再啟動(dòng)StartsServers個(gè)進(jìn)程備用,這樣就大大減少了請(qǐng)求隊(duì)列等待的可能,使得服務(wù)效率提高,這也是為什么叫做Pre-fork的原因;

讓我們繼續(xù)跟蹤Apache的工作,我們假設(shè)Apache已經(jīng)啟動(dòng)了200個(gè)進(jìn)程來(lái)處理請(qǐng)求,理論上來(lái)說(shuō),此時(shí)Apache一共有205個(gè)進(jìn)程,而過(guò)了一段時(shí)間,假設(shè)有100個(gè)請(qǐng)求都得到了Apache的響應(yīng)和處理,那么此時(shí)這100個(gè)進(jìn)程就被釋放成為空閑進(jìn)程,那么此時(shí)Apache有105個(gè)空閑進(jìn)程。而對(duì)于服務(wù)而言,啟動(dòng)太多的空閑進(jìn)程時(shí)沒(méi)有任何意義的,反而會(huì)降低服務(wù)器的整體性能,那么Apache真的會(huì)有105個(gè)空閑進(jìn)程么?

當(dāng)然不會(huì)!實(shí)際上Apache隨時(shí)在檢查自己,當(dāng)發(fā)現(xiàn)有超過(guò)MaxSpareServers個(gè)空閑進(jìn)程時(shí),則會(huì)自動(dòng)停止關(guān)閉一些進(jìn)程,以保證空閑進(jìn)程不過(guò)過(guò)多。說(shuō)到這里,用戶應(yīng)該對(duì)Apache的工作方式有了一定的了解,如果想獲得更多更詳細(xì)的說(shuō)明請(qǐng)參閱Apache手冊(cè)文檔。

我們還有兩個(gè)參數(shù)沒(méi)有介紹:MaxClients和MaxRequestPerchild;

MaxClients指定Apache在同一時(shí)間內(nèi)最多允許有多少客戶端能夠與其連接,如果超過(guò)MaxClients個(gè)連接,客戶端將會(huì)得到一個(gè)“服務(wù)器繁忙”的錯(cuò)誤頁(yè)面。我們看到默認(rèn)情況下MaxClients設(shè)置為15,這對(duì)一些中型站點(diǎn)和大型站點(diǎn)顯然是遠(yuǎn)遠(yuǎn)不夠的!也許您需要同時(shí)允許512個(gè)客戶端連接才能滿足應(yīng)用需求,好吧,那么就讓我們把MaxClients修改為512,保存httpd.conf并退出,重啟Apache,很遺憾,在重啟過(guò)程當(dāng)中您看到了一些錯(cuò)誤提示,Apache重啟失敗。錯(cuò)誤提示中告訴您MaxClients***只能設(shè)定為256,相信您一定很失望。不過(guò)不要沮喪,Apache作為世界***的WebServer一定不會(huì)如此單薄的!在默認(rèn)情況下,MaxClients的確只能設(shè)定為不超過(guò)256的整數(shù),但是,如果您有需要完全可以隨意定制,此時(shí)就需要使用ServerLimit參數(shù)來(lái)配合使用,簡(jiǎn)單的說(shuō)ServerLimit就像是水桶,而MaxClients就像是水,您可以通過(guò)更換更大的水桶(將ServerLimit設(shè)定為一個(gè)較大值)來(lái)容納更多的水(MaxClients),但要注意,MaxClients的設(shè)定數(shù)值是不能大于ServerLimit的設(shè)定數(shù)值的!

注:MaxClents

下面讓我們了解一下MaxRequestPerChild參數(shù),該參數(shù)指定一個(gè)連接進(jìn)程中可以有多少個(gè)線程同時(shí)工作。也許這樣解釋過(guò)于專業(yè),那么您只要想想“網(wǎng)絡(luò)螞蟻”、“網(wǎng)際快車FlashGet”中的“多點(diǎn)同時(shí)下載”即可,該參數(shù)實(shí)際上就是限制最多可以用幾個(gè)“點(diǎn)”。默認(rèn)設(shè)置為0,即為:不限制。但需要注意,如果將該值設(shè)置的過(guò)小會(huì)引起訪問(wèn)問(wèn)題,如果沒(méi)有特殊需要或者訪問(wèn)量壓力并非很大可以保持默認(rèn)值,如果訪問(wèn)量很大則推薦設(shè)置為2048。

好了,解釋了這么多,讓我們看看經(jīng)過(guò)修改后Perfork.c配置段的推薦配置:

  1. StartServers5  
  2.  
  3. MinSpareServers5  
  4.  
  5. MaxSpareServers10  
  6.  
  7. ServerLimit1024  
  8.  
  9. MaxClients768  
  10.  
  11. MaxRequestsPerChild0  
  12.  

完成了上述對(duì)Apache的調(diào)整,Apache已經(jīng)獲得了較大的性能改善。

#p#

二、MySQL優(yōu)化建議及分析

MySQL優(yōu)化步驟:

1、看機(jī)器配置,指三大件:cpu、內(nèi)存、磁盤(I/O)

2、看mysql配置參數(shù)

3、查系mysql行狀態(tài),可以用mysqlreport工具來(lái)查看

4、查看mysql的慢查詢

依次解決了以上問(wèn)題之后,再來(lái)查找程序方面的問(wèn)題

MySQL優(yōu)化具體方法及建議

1.以root數(shù)據(jù)庫(kù)服務(wù)器,先查看相關(guān)日志,看看有什么異常tail?n100xxx.erro

2.以root身份登陸MySQL數(shù)據(jù)庫(kù),

Mysql?uroot?p

showprocesslist;

3.使用showstatus命令

mysql會(huì)給出一個(gè)很長(zhǎng)的列表

官方說(shuō)明在http://www.mysql.com/doc/e...

含義如下:

aborted_clients客戶端非法中斷連接次數(shù)

aborted_connects連接mysql失敗次數(shù)

com_xxxxxx命令執(zhí)行次數(shù),有很多條

connections連接mysql的數(shù)量

Created_tmp_disk_tables在磁盤上創(chuàng)建的臨時(shí)表

Created_tmp_tables在內(nèi)存里創(chuàng)建的臨時(shí)表

Created_tmp_files臨時(shí)文件數(shù)

Key_read_requestsThenumberofrequeststoreadakeyblockfromthecache

Key_readsThenumberofphysicalreadsofakeyblockfromdisk

Max_used_connections同時(shí)使用的連接數(shù)

Open_tables開(kāi)放的表

Open_files開(kāi)放的文件

Opened_tables打開(kāi)的表

Questions提交到server的查詢數(shù)

Sort_merge_passes如果這個(gè)值很大,應(yīng)該增加my.cnf中的sort_buffer值

Uptime服務(wù)器已經(jīng)工作的秒數(shù)

提升性能的建議:

1.如果opened_tables太大,應(yīng)該把my.cnf中的table_cache變大

2.如果Key_reads太大,則應(yīng)該把my.cnf中key_buffer_size變大.可以用Key_reads/Key_read_requests計(jì)算出cache失敗率

3.如果Handler_read_rnd太大,則你寫的SQL語(yǔ)句里很多查詢都是要掃描整個(gè)表,而沒(méi)有發(fā)揮索引的鍵的作用

4.如果Threads_created太大,就要增加my.cnf中thread_cache_size的值.可以用Threads_created/Connections計(jì)算cache命中率

5.如果Created_tmp_disk_tables太大,就要增加my.cnf中tmp_table_size的值,用基于內(nèi)存的臨時(shí)表代替基于磁盤的

注:所以配置參數(shù)可以修改/etc/my.cnf此文件.

具體更深入的mysql優(yōu)化請(qǐng)見(jiàn)本版相關(guān)貼

三、系統(tǒng)負(fù)載及性能分析方法及工具介紹

vmstat

Procs

-r:

運(yùn)行的和等待(CPU時(shí)間片)運(yùn)行的進(jìn)程數(shù),這個(gè)值也可以判斷是否需要增加CPU(長(zhǎng)期大于1)

-b:

處于不可中斷狀態(tài)的進(jìn)程數(shù),常見(jiàn)的情況是由IO引起的

Memory

-swpd:切換到交換內(nèi)存上的內(nèi)存(默認(rèn)以KB為單位)

如果swpd的值不為0,或者還比較大,比如超過(guò)100M了,但是si,so的值長(zhǎng)期為0,這種情況我們可以不用擔(dān)心,不會(huì)影響系統(tǒng)性能。

-free:空閑的物理內(nèi)存

-buff:作為buffercache的內(nèi)存,對(duì)塊設(shè)備的讀寫進(jìn)行緩沖

-cache:作為pagecache的內(nèi)存,文件系統(tǒng)的cache

如果cache的值大的時(shí)候,說(shuō)明cache住的文件數(shù)多,如果頻繁訪問(wèn)到的文件都能被cache住,那么磁盤的讀IObi會(huì)非常小。

Swap

-si:交換內(nèi)存使用,由磁盤調(diào)入內(nèi)存

-so:交換內(nèi)存使用,由內(nèi)存調(diào)入磁盤

內(nèi)存夠用的時(shí)候,這2個(gè)值都是0,如果這2個(gè)值長(zhǎng)期大于0時(shí),系統(tǒng)性能會(huì)受到影響。磁盤IO和CPU資源都會(huì)被消耗。

我發(fā)現(xiàn)有些朋友看到空閑內(nèi)存(free)很少或接近于0時(shí),就認(rèn)為內(nèi)存不夠用了,實(shí)際上不能光看這一點(diǎn)的,還要結(jié)合si,so,如果free很少,但是si,so也很少(大多時(shí)候是0),那么不用擔(dān)心,系統(tǒng)性能這時(shí)不會(huì)受到影響的。

Io

-bi:從塊設(shè)備讀入的數(shù)據(jù)總量(讀磁盤)(KB/s),

-bo:寫入到塊設(shè)備的數(shù)據(jù)總理(寫磁盤)(KB/s)

隨機(jī)磁盤讀寫的時(shí)候,這2個(gè)值越大(如超出1M),能看到CPU在IO等待的值也會(huì)越大

System

-in:每秒產(chǎn)生的中斷次數(shù)

-cs:每秒產(chǎn)生的上下文切換次數(shù)

上面這2個(gè)值越大,會(huì)看到由內(nèi)核消耗的CPU時(shí)間會(huì)越多

Cpu

-us:用戶進(jìn)程消耗的CPU時(shí)間百分比

us的值比較高時(shí),說(shuō)明用戶進(jìn)程消耗的CPU時(shí)間多,但是如果長(zhǎng)期超過(guò)50%的使用,那么我們就該考慮優(yōu)化程序算法或者進(jìn)行加速了(比如PHP/Perl)

-sy:內(nèi)核進(jìn)程消耗的CPU時(shí)間百分比

sy的值高時(shí),說(shuō)明系統(tǒng)內(nèi)核消耗的CPU資源多,這并不是良性的表現(xiàn),我們應(yīng)該檢查原因。

-wa:IO等待消耗的CPU時(shí)間百分比

wa的值高時(shí),說(shuō)明IO等待比較嚴(yán)重,這可能是由于磁盤大量作隨機(jī)訪問(wèn)造成,也有可能是磁盤的帶寬出現(xiàn)瓶頸(塊操作)。

-id:CPU處在空閑狀態(tài)時(shí)間百分比

情景分析

這個(gè)vmstat的輸出那些信息值得關(guān)注?

-Procsr:運(yùn)行的進(jìn)程比較多,系統(tǒng)很繁忙

-Iobo:磁盤寫的數(shù)據(jù)量稍大,如果是大文件的寫,10M以內(nèi)基本不用擔(dān)心,如果是小文件寫2M以內(nèi)基本正常

Cpuus:持續(xù)大于50,服務(wù)高峰期可以接受

Cpuwa:稍微有些高

Cpuid:持續(xù)小于50,服務(wù)高峰期可以接受

Top性能分析介紹

這個(gè)命令可以查看系統(tǒng)中運(yùn)行的進(jìn)程的狀況,CPU使用狀況,系統(tǒng)負(fù)載,內(nèi)存使用等。它是檢查系統(tǒng)進(jìn)程運(yùn)行狀況最方便的工具了,它默認(rèn)顯示部分活動(dòng)的進(jìn)程,并且按照進(jìn)程使用CPU的多少排序。它可以顯示全部CPU的使用狀況,也可以顯示每個(gè)進(jìn)程都運(yùn)行在那個(gè)CPU上面。

我習(xí)慣使用這個(gè)命令查看那些進(jìn)程或者那類進(jìn)程占用CPU和內(nèi)存資源最多,以此迅速定位存在性能問(wèn)題的進(jìn)程,以及運(yùn)行異常的進(jìn)程。

用top看到的內(nèi)存的說(shuō)明(Mem的第2行)

-actv

active活躍的內(nèi)存頁(yè),正在映射給進(jìn)程使用

-in_d

inactive_dirty非活躍的內(nèi)存頁(yè),并且內(nèi)存數(shù)據(jù)被修改,需要寫回磁盤

-in_c

inactive_clean非活躍的內(nèi)存頁(yè),干凈的數(shù)據(jù),可以被重新分配使用

問(wèn)題?

in_d和in_c以及cache,buffer的內(nèi)存有何不同?

我的理解:

actv,in_d,in_c是VM中對(duì)內(nèi)存的管理組織形式,buffer是塊設(shè)備讀寫緩沖,cache是文件系統(tǒng)緩存

top工具介紹:

用top看到的進(jìn)程所處的幾種狀態(tài)(STAT列)。

-D不可中斷休眠,通常是IO操作所處的狀態(tài)

-R正在執(zhí)行的或者處在等待執(zhí)行的進(jìn)程隊(duì)列中

-S休眠中

-T暫停刮起的(比如Ctrl+Z),也可能是被strace命令調(diào)用中的狀態(tài)

-Z僵尸進(jìn)程,進(jìn)程執(zhí)行完成,但由于其父進(jìn)程沒(méi)有銷毀該進(jìn)程,而被init進(jìn)程接管進(jìn)行銷毀。

-W沒(méi)有使用物理內(nèi)存,所占用的物理內(nèi)存被切換到交換內(nèi)存

<高優(yōu)先級(jí)的進(jìn)程

-N低優(yōu)先級(jí)

有時(shí)候一個(gè)進(jìn)程會(huì)有多個(gè)狀態(tài)的標(biāo)志,比如SWN,SW。

希望本文介紹的服務(wù)器性能優(yōu)化配置的相關(guān)建議能夠?qū)ψx者有所幫助。

【編輯推薦】

  1. 提升服務(wù)器穩(wěn)定性的四把利劍
  2. Exchange服務(wù)器快速恢復(fù)的步驟
  3. 你的Windows服務(wù)器是否得到了適當(dāng)保護(hù)
  4. 利用WindowsServerBackup備份服務(wù)器很重要
  5. 搞定服務(wù)器備份:WindowsServerBackup工具
責(zé)任編輯:韓亞珊 來(lái)源: 博客轉(zhuǎn)載
相關(guān)推薦

2022-09-26 09:19:38

服務(wù)器優(yōu)化

2009-01-08 17:43:17

服務(wù)器性能磁盤

2022-02-16 14:10:51

服務(wù)器性能優(yōu)化Linux

2021-11-29 11:13:45

服務(wù)器網(wǎng)絡(luò)性能

2022-05-05 09:27:31

Linux服務(wù)器優(yōu)化

2011-03-11 15:52:59

LAMP優(yōu)化

2013-05-02 09:31:02

虛擬化服務(wù)器

2023-07-04 07:19:17

物理服務(wù)器網(wǎng)絡(luò)

2013-07-23 09:51:32

Tomcat性能優(yōu)化服務(wù)器性能優(yōu)化

2010-05-19 10:31:07

IIS服務(wù)器

2011-03-11 15:53:02

LAMP優(yōu)化

2021-01-13 05:27:02

服務(wù)器性能高并發(fā)

2025-06-11 02:10:00

2018-06-13 10:27:04

服務(wù)器性能優(yōu)化

2009-08-11 08:38:15

Linux服務(wù)器硬盤性能實(shí)用技巧

2019-08-12 14:46:56

Web服務(wù)器性能

2011-03-11 15:52:57

LAMP優(yōu)化

2022-10-10 12:31:37

服務(wù)器性能

2024-05-08 16:47:24

PostgreSQL數(shù)據(jù)庫(kù)

2010-05-19 10:40:59

IIS服務(wù)器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)