性能調(diào)優(yōu)概述,這是一篇最通俗易懂的性能調(diào)優(yōu)總結(jié)
精彩早知道
- 作者概述
- 什么是性能調(diào)優(yōu)?(what)
- 為什么需要性能調(diào)優(yōu)?(why)
- 什么時候需要性能調(diào)優(yōu)?(when)
- 什么地方需要性能調(diào)優(yōu)?(where)
- 什么人來進(jìn)行性能調(diào)優(yōu)?(who)
- 怎么樣進(jìn)行性能調(diào)優(yōu)?(How)
- 總結(jié)
硬件配置:CUP Xeon E5620 x 2 8核心, 內(nèi)存 16G , 硬盤 RAID 10,操作系統(tǒng): CentOS 6.4 x86_64(64位)。
概述
在這篇博文中,我不想用一些抽象的概念去說性能調(diào)優(yōu)的問題,只想用最通俗的語言盡量來準(zhǔn)確的表達(dá)我的想法。
由于本人水平有限,有什么不對或者不清楚的地方歡迎大家交流指正。為了更能通俗易懂的理解我們即將要的性能調(diào)優(yōu)的話題,我在這里簡單的和大家說一下我寫這篇文章的寫作方法 5w+1h方法。
注,5w+1h就是對所做工作進(jìn)行科學(xué)的分析,對某一工作在調(diào)查研究的基礎(chǔ)上:
- 就其工作內(nèi)容(What)
- 責(zé)任者(Who)
- 工作崗位(Where)
- 工作時間(When
- 怎樣操作(How
- 以及為何這樣做(Why)
即”5W”、”1H”進(jìn)行書面描述,并按此描述進(jìn)行操作,達(dá)到完成職務(wù)任務(wù)的目標(biāo)。(來源“百度百科”)
哈哈!聽過馬哥課程的一定不陌生!
二、什么是性能調(diào)優(yōu)?(what)
在說什么是性能調(diào)優(yōu)之前,我們先來說一下,計算機的體系結(jié)構(gòu)。
如上圖,簡單來說包括三塊:硬件、操作系統(tǒng)、應(yīng)用程序。其實,性能調(diào)優(yōu)就是調(diào)節(jié)這些內(nèi)容,包括硬件、操作系統(tǒng)、應(yīng)用程序。其中,這三大方面中又包含了若干的內(nèi)容。
硬件包括:CPU、內(nèi)存、磁盤、網(wǎng)卡、其它……,
操作系統(tǒng)包括 進(jìn)程、虛擬內(nèi)存、文件系統(tǒng)、網(wǎng)絡(luò)、其它……,
應(yīng)用程序我就不用說了大家都懂,常見的有Apache、MySQL、Nginx、Memcahed等。
那什么是性能調(diào)優(yōu)呢?
性能調(diào)優(yōu)就是對計算機硬件、操作系統(tǒng)和應(yīng)用有相當(dāng)深入的了解,調(diào)節(jié)三者之間的關(guān)系,實現(xiàn)整個系統(tǒng)(包括硬件、操作系統(tǒng)、應(yīng)用)的性能***化,并能不斷的滿足現(xiàn)有的業(yè)務(wù)需求。這就是我們說的性能調(diào)優(yōu),客官你懂了嘛?
三、為什么需要性能調(diào)優(yōu)?(why)
下面我們來說一說為什么需要性能調(diào)優(yōu),其實說到底就兩原因:一是為了獲得更好的系統(tǒng)性能(就是你現(xiàn)有的系統(tǒng)運行的還不錯,但優(yōu)化一下可以運行的更好)。二是通過性能調(diào)優(yōu)來滿足不斷增加的業(yè)務(wù)需求。為了更直觀的幫助大家來理解為什么要性能調(diào)優(yōu)?我們分別從三個方面來說:
- 硬件選型(根據(jù)服務(wù)器應(yīng)用類型來選購服務(wù)器)
- 操作系統(tǒng)發(fā)行版本 (選擇發(fā)行版本)
- 應(yīng)用程序 (Nginx、MySQL等)
1.硬件選型
不管你是租服務(wù)器也好還是自己買服務(wù)器也好都要遇到一個問題,我們選擇什么樣硬件配置的服務(wù)器。
一般我們是根據(jù)應(yīng)用類型來選擇服務(wù)器,因為你不可能一種硬件配置來滿足所有的應(yīng)用需求,因為每個應(yīng)用的具體需求不一樣。下面我們來看一下在項目實施中有哪些應(yīng)用類型:
- 負(fù)載均衡:性能要求相對較低,因為只負(fù)責(zé)轉(zhuǎn)發(fā)數(shù)據(jù),但要保證選一性能突出的網(wǎng)卡即可。(推薦配置:CPU E5620 x 1 內(nèi)存 8G 硬盤 500G(RAID5))
- Web 服務(wù)器:一般只處理一些靜態(tài)頁面或者圖片等,因此要求也不是很高,主流的服務(wù)器都可以。(推薦配置:CPU E5620 x 1 內(nèi)存 16G 硬盤 500G(RAID5))
- 應(yīng)用服務(wù)器:一般應(yīng)用程序服器,他承擔(dān)網(wǎng)站功能的實現(xiàn),在架構(gòu)中占有比較重的位置,特別是網(wǎng)站架構(gòu)中只有一臺應(yīng)用服務(wù)器,對CPU、內(nèi)存、磁盤要求都比較高。(推薦配置:CPU E5620 x 2 內(nèi)存 32G 硬盤 500G(RAID10))
- 緩存服務(wù)器:分為前端頁面緩存與后面數(shù)據(jù)緩存,他們典型的應(yīng)用分別是Varnish與Memcached,對內(nèi)存的要求比較大,一般我們配置服務(wù)器時使用較大有內(nèi)存。(推薦配置:CPU E5620 x 1 內(nèi)存 32G 硬盤 500G(RAID10))
- 數(shù)據(jù)庫服務(wù)器:數(shù)據(jù)服務(wù)器對CPU、內(nèi)存、磁盤的要求都很高,一但某個硬件是短板都會帶來性能問題。(推薦配置:CPU E5620 x 2 內(nèi)存 64G 固態(tài)硬盤 500G(RAID10))
- 備份服務(wù)器:備份服務(wù)器一般就沒有什么要求,但有點可以肯定是必須有足夠大的硬盤空間。(推薦配置:CPU E5620 x 1 內(nèi)存 4G 硬盤 2TB(RAID5))
- 監(jiān)控服務(wù)器:一般也沒什么需要,普通的PC服務(wù)器就可以。(推薦配置:CPU E5620 x 1 內(nèi)存 4G 硬盤 500(RAID5))
- 其它服務(wù)器:至于其它服務(wù)器就看各位的具體需要具體分析了。
這下各位知道什么是硬件的性能調(diào)優(yōu)了吧,根據(jù)你具體的應(yīng)用,進(jìn)行具體分析特別是像MySQL這樣的服務(wù)器,對CPU、內(nèi)存、磁盤要求都比較高。
所以,對硬件的性能調(diào)優(yōu)我們必須做到選擇合適的硬件配置。這是網(wǎng)站架架構(gòu)或者項目實施首先要解決的問題!
2.操作系統(tǒng)
有本書叫《Linux Performance Tuning》(Linux 性能調(diào)優(yōu))這本書是老外寫的,作者是 Fernando Apesteguia 。
為什么我們需要性能調(diào)優(yōu)?他得出的結(jié)論是這樣的:
“當(dāng)一個發(fā)行版打包發(fā)送到客戶手中的時候,它是為了完全兼容市場中大部分計算機而設(shè)計的。這是一個相當(dāng)混雜的硬件集合(硬盤,顯卡,網(wǎng)卡,等等)。
所以Red Hat,SUSE,Mandriva,Ubuntu和其他的一些發(fā)行版廠商選擇了一些保守的設(shè)置來確保安裝成功。”
簡單說,你的操作系統(tǒng)已經(jīng)運行的不錯了,但是你可以調(diào)節(jié)它獲得更高的性能,比如你有個高性能的磁盤,但你的操作系統(tǒng)中一些選項參數(shù)默認(rèn)沒有啟動,就不能實現(xiàn)這些高級功能來提高硬盤性能。
還有我想說就是對操作系統(tǒng)發(fā)行版選擇的問題,RedHat或CentOS這些操作系統(tǒng)在項目實施或網(wǎng)站架構(gòu)中用的比較多,主要針對企業(yè)應(yīng)用而開發(fā)的操作系統(tǒng)。
而Ubuntu之類的操作系統(tǒng)對桌面支持的比較好,所以選擇發(fā)行版本時得注意。(一般企業(yè)中用的比較多的是CentOS)再有就是我們一般不要選擇***的發(fā)行版,因為剛出來的發(fā)行版相對來說bug還比較多,不要先當(dāng)“小白鼠”了,
比如:剛剛出來CentOS 7 等過一段時間穩(wěn)定了再使用,目前我們可以選擇 CentOS 6.4 或 6.5即可。
(但新版本也有很多好處,新版本中加入了很多新功能,去掉習(xí)已知bug,對于一些不重要的應(yīng)用,可嘗試使用新的操作系統(tǒng))
3.應(yīng)用程序
***,我們得來說說應(yīng)用程序了,我們先來簡單看到一下Apache的MPM配置文件:
prefork 模型:
- <IfModule prefork.c>
- StartServers 8
- MinSpareServers 5
- MaxSpareServers 20
- ServerLimit 256
- MaxClients 256
- MaxRequestsPerChild 4000
- </IfModule>
大家可以從上面的配置文件中可以看出,apache 開始啟動時啟用 8個進(jìn)程,最小 5個進(jìn)程,***20個進(jìn)程,每個進(jìn)程限制請求數(shù)為256個,最多可以接受請求 4000個,超過這個限制數(shù)自動銷毀。
worker 模型:
- <IfModule worker.c>
- StartServers 2
- MaxClients 150
- MinSpareThreads 25
- MaxSpareThreads 75
- ThreadsPerChild 25
- MaxRequestsPerChild 0
- </IfModule>
在看一下,worker模型的配置文件,默認(rèn)啟動2個進(jìn)程,每個進(jìn)程可以接受的請求為150個,每個進(jìn)程中最小線程數(shù)25個,***線程數(shù)為75個,默認(rèn)線程數(shù)25個,每個線程可以接受的請求沒有限制為0。
好了,大家看完上面的配置文件,可以看出默認(rèn)的Apache配置文件,設(shè)置的比較保守,只適于一些中小網(wǎng)站,想要獲得高性能的Apache服務(wù)器還必須進(jìn)行性能調(diào)優(yōu),包括apache編譯選項,配置文件優(yōu)化等,具體的調(diào)優(yōu)我們在這里先不細(xì)說。
通過我們上面的講解,我們分別從硬件、操作系統(tǒng)、應(yīng)用程序,這三個方面入手和大家談?wù)劄楹涡枰阅苷{(diào)優(yōu),相信大家已經(jīng)知道并了解,相信大家都迫不及待了吧。
嘿嘿,我們先不急還有很多問題沒有說清楚,下面我們和大家來說說,什么時候需要性能調(diào)優(yōu)?
四、什么時候需要性能調(diào)優(yōu)?(when)
一般分為兩個時間段:
- 上線前(基本優(yōu)化)
- 上線后(持續(xù)優(yōu)化)
為什么這樣說呢,一般我們在項目實施到項目上線這段時間,不但要準(zhǔn)備硬件服務(wù)器、安裝操作系統(tǒng)、環(huán)境搭建,還有個很重要的問題就是進(jìn)行性能優(yōu)化,包括操作系統(tǒng)優(yōu)化和應(yīng)用環(huán)境優(yōu)化等,我稱上線前的優(yōu)化為基本優(yōu)化也稱為經(jīng)驗優(yōu)化。
根據(jù)你做過的項目和你工作中的經(jīng)驗對上線前的服務(wù)器或架構(gòu)進(jìn)行基本的性能優(yōu)化來滿足業(yè)務(wù)需求。
再有就是項目上線后的優(yōu)化,在上線前我們已經(jīng)經(jīng)過基本的性能優(yōu)化,解決大部分的性能問題,但畢竟上線前的所以測試都是模擬測試并進(jìn)行相關(guān)的性能優(yōu)化,與上線后的真實環(huán)境還是有相當(dāng)大的區(qū).
我們首先要做的就是對上線后的項目進(jìn)行性能監(jiān)控包括服務(wù)器性能監(jiān)控和服務(wù)性能監(jiān)控。
服務(wù)器性能監(jiān)控包括:
CPU使用率、CPU負(fù)載、內(nèi)存使用率、磁盤I/O、磁盤空間使用率、網(wǎng)絡(luò)流量、系統(tǒng)進(jìn)程等,服務(wù)性能監(jiān)控包括apache、nginx、mysql。
以上架構(gòu)中所有的服務(wù)都需要進(jìn)行性能監(jiān)控,一但發(fā)現(xiàn)有問題我們都得去進(jìn)行性能優(yōu)化,在這個過程中我稱為持續(xù)優(yōu)化也稱為監(jiān)控優(yōu)化。下面我們來具體的說一下,具體什么地方需要性能調(diào)優(yōu)?
五、什么地方需要性能調(diào)優(yōu)?(where)
在上面我們說性能調(diào)優(yōu)只說一些大的方面,包括硬件、操作系統(tǒng)、應(yīng)用程序這三大塊。
其實還有一塊就是程序本身的優(yōu)化,開發(fā)人員根據(jù)需求開發(fā)出來的程序本身就需要性能優(yōu)化,但對于我們運維人員來說接觸的比較少而已。下面我們就來看看這三大塊:
- 硬件 (CPU、內(nèi)存、磁盤、網(wǎng)卡)
- 操作系統(tǒng)(進(jìn)程、文件系統(tǒng)、內(nèi)核 ……)
- 應(yīng)用程序(Nginx、MySQL ……)
1.硬件
硬件優(yōu)化一般也包括兩塊:
- 上線前(硬件選型)
- 上線后(硬件擴展)
一般項目搭建時都需要根據(jù)具體的應(yīng)用進(jìn)行硬件配置選型,在這方面需要一定的運維經(jīng)驗剛接觸的朋友可以在這方面有點欠缺,但沒事一般做過一兩個項目以后,對硬件配置選型也就會了,嘿嘿。
但有個不成文的經(jīng)驗,硬件配置還是越高越好(別說是我說的)。
我們?yōu)槭裁凑f需要根據(jù)具體的應(yīng)用來選型呢,一方是什么樣的應(yīng)用需要什么樣的硬件配置,還有點很重要就是節(jié)約成本,錢得要在刀刃上不該花的錢我們不能亂花,也是為公司節(jié)約成本,實現(xiàn)資源利用***化。
上面我們說的是項目搭建初期,你運氣比較好項目一開始你就在這邊。
一般有經(jīng)驗的運維工程師在硬件選型是不會有問題的,所以我們在性能優(yōu)化時就不考慮硬件這塊,從理論上講我們服務(wù)器硬件配置一般不會出現(xiàn)在這種性能問題上。
但是呢,由于我們業(yè)務(wù)做的越來越好,項目創(chuàng)建初期沒有考慮到會有這么大的性能需要(訪問量),現(xiàn)在有的硬件不能滿足業(yè)務(wù)需求,所我們這時需要更換更好的CPU、更大的內(nèi)存和更快的磁盤。
至于如何找出硬件是性能瓶頸我們先在這里不細(xì)說,在后面的文章中我們將會細(xì)說。***我們來看一張硬件架構(gòu)圖,能幫你更好的理解硬件優(yōu)化,如下圖(Dell R 710 架構(gòu)):
2.操作系統(tǒng)
下面我們來說操作系統(tǒng),其實絕大部分的優(yōu)化都在操作系統(tǒng)和應(yīng)用程序的優(yōu)化,除了上線前的硬件選型和上線后的硬件擴展,下面我們就來看看操作系統(tǒng)優(yōu)化包括哪些:
- 操作系統(tǒng)安裝優(yōu)化
- 系統(tǒng)初始化
- 進(jìn)程調(diào)優(yōu)
- 內(nèi)存調(diào)優(yōu)
- IO 調(diào)優(yōu)
- 文件系統(tǒng)調(diào)優(yōu)
- 網(wǎng)絡(luò)調(diào)化
下面我們來看一張圖,可以更直觀的幫且我們理解,如下圖:
3.應(yīng)用程序
***我們來說說應(yīng)用程序優(yōu)化,這里我們來說一下MySQL優(yōu)化例子,讓大家更直觀的了解。
- MySQL 編譯安裝優(yōu)化
- MySQL 配置文件優(yōu)化
- 索引優(yōu)化
- MySQL 引擎優(yōu)化
- 查詢緩存優(yōu)化
- SQL 語句優(yōu)化
- 優(yōu)化表類型(MyISAM或InnoDB)
- 鎖機制優(yōu)化
- MySQL 服務(wù)器優(yōu)化(換SSD)
通達(dá)上面的對硬件、操作系統(tǒng)、應(yīng)用程序的具體說明相信,大家對性能優(yōu)化有了更深層次的了解,下面我們來說一個重要的問題,什么人來進(jìn)行性能優(yōu)化?
六、什么人來進(jìn)行性能調(diào)優(yōu)?(who)
一說起性能優(yōu)化我們***個想到的是運維工程師,他們來進(jìn)行優(yōu)化。
其實我想說,這么說是片面的性能優(yōu)化不僅僅是運維工程師的事。
其實呢,性能優(yōu)化是一個團(tuán)隊的事。我為什么這么說呢?
下面我們就來說一下,大家想啊一公司需要做一項目,我們就拿最常見的電子商務(wù)中商城的項目來說吧,公司確認(rèn)由于業(yè)務(wù)需要我們需要在網(wǎng)上做一個建材商城,那項目的具體流程是什么呢?可能不是很詳細(xì),但大體過程是樣的:
- 運營提出需求
- 產(chǎn)品整理需求
- 開發(fā)開發(fā)具體的業(yè)務(wù)應(yīng)用
- 運維搭建開發(fā)環(huán)境
- QA 進(jìn)行項目測試
- 運維進(jìn)行項目上線
- 監(jiān)控進(jìn)行項目監(jiān)控
開發(fā)一個具體的應(yīng)用需要運營部、產(chǎn)品部、開發(fā)部、運維部、QA (測試)、監(jiān)控等所以有部門的參加。
同樣的一個項目(業(yè)務(wù))存在性能問題,不會只是運維部門需要性能調(diào)優(yōu)而是所以部門一起解決這個性能問題,這是缺一不可的。
可能出現(xiàn)在產(chǎn)品,也可能出現(xiàn)在程序上(*.php),也可能是業(yè)務(wù)需要本身就有問題,也可能是運維的環(huán)境搭建有問題。但參加性能調(diào)優(yōu)的更多的是開發(fā)、運維、測試和監(jiān)控。
七、怎么樣進(jìn)行性能調(diào)優(yōu)?(How)
下面進(jìn)入正題了我們說一說怎么進(jìn)行性能調(diào)優(yōu),具體步驟如下:
- 性能指標(biāo) –> 確認(rèn)衡量標(biāo)準(zhǔn)
- 性能測試 –> 驗證性能指標(biāo)
- 性能分析 –> 找出性能瓶頸
- 性能調(diào)優(yōu) –> 解決性能問題
- 性能監(jiān)控 –> 檢驗調(diào)優(yōu)效果
1.性能指標(biāo)
上面我們說了,我們優(yōu)化的目的是為了獲得更好的性能,那么性能指標(biāo)是什么呢?我們怎么樣來衡量,一般衡量一個項目(這里指的網(wǎng)站)的指標(biāo)有三個:
- 吞吐量 –> 是單位時間內(nèi)完成的用戶或系統(tǒng)的請求數(shù)量。
- 并發(fā)數(shù) –> 同時能接受多少用戶的訪問請求
- 響應(yīng)時間 –> 用戶發(fā)出請求到收到響應(yīng)的時間間隔。
2.性能測試
我們做產(chǎn)品或者說項目(更直白的說是網(wǎng)站)目的是為了讓用戶使用,我們得先站在用戶的角度分析一下,用戶需要關(guān)注哪些性能。
對于用戶來說,當(dāng)點擊一個按鈕、鏈接或發(fā)出一個操作指令,到系統(tǒng)把請求處理好發(fā)給用戶并用網(wǎng)頁的形式展現(xiàn)出來為止,這個過程中所消耗的時間是用戶對這個網(wǎng)站性能的直觀印象。
也就是我們所說的響應(yīng)時間,當(dāng)響應(yīng)時間較小時,用戶體驗相對來說就會好,當(dāng)然用戶體驗的響應(yīng)時間包括個人主觀因素和客觀響應(yīng)時間。
在網(wǎng)站開發(fā)與搭建時,我們就需要考慮到如何更好地結(jié)合這兩部分達(dá)到用戶***的體驗。用戶關(guān)注的是用戶操作的相應(yīng)時間。
其次,我們站在運維的角度考慮需要關(guān)注的性能點。再次,我們得站在開發(fā)(設(shè)計)人員角度去考慮網(wǎng)站性能。***,由QA測試與反饋我們網(wǎng)站性能。
經(jīng)過上述的說明,我們來測試系統(tǒng)的性能,需要我們收集系統(tǒng)的吞吐量、并發(fā)數(shù)、響應(yīng)時間這三個重要的指標(biāo)。具體步驟是:
- 確認(rèn)吞吐量、并發(fā)數(shù)、響應(yīng)時間這三個值
- 找到或開發(fā)相應(yīng)的性能測試工具
- 進(jìn)行性能測試
- 反饋結(jié)果并提交測試報告
結(jié)果,有兩個一種是達(dá)到我們預(yù)期的性能目標(biāo),這樣我們就不需要性能優(yōu)化任務(wù)完成可以交給運維上線,只需要進(jìn)行相關(guān)的性能監(jiān)控,方便上線后進(jìn)行性能優(yōu)化。
另一種是沒有達(dá)到我們預(yù)期的目標(biāo),我們要查找性能瓶頸并進(jìn)行性能優(yōu)化。
3.性能分析
通過上面的性能測試,我們發(fā)現(xiàn)網(wǎng)站沒有達(dá)到我們預(yù)期定義的性能目標(biāo),這時我們需要做的就是對現(xiàn)有的系統(tǒng)(服務(wù)器)進(jìn)行監(jiān)控,包括硬件與軟件監(jiān)控,為性能調(diào)優(yōu)提供有效的性能監(jiān)控數(shù)據(jù)。
下面我們重點來說一下,用什么工具能找出性能瓶頸:
硬件:
- 用vmstat、sar、iostat檢測是否是CPU瓶頸
- 用free、vmstat檢測是否是內(nèi)存瓶頸
- 用iostat檢測是否是磁盤I/O瓶頸
- 用netstat檢測是否是網(wǎng)絡(luò)帶寬瓶
操作系統(tǒng):
- 進(jìn)程
- 文件系統(tǒng)
- SWAP 分區(qū)
- 內(nèi)核參數(shù)調(diào)整
- 應(yīng)用程序(MySQL等):
- mysqlreport 性能分析報告
- mysqlsla 慢查詢?nèi)罩痉治?/li>
4.性能調(diào)優(yōu)
- 確定調(diào)優(yōu)目標(biāo)
- 具體調(diào)優(yōu)步驟
- 檢測調(diào)優(yōu)結(jié)果
確定調(diào)優(yōu)目標(biāo)
我們性能優(yōu)化的目標(biāo)是網(wǎng)站性能提高10%還是20%,不能老大說今天你給我優(yōu)化一下網(wǎng)站性能,你就能使用網(wǎng)站性能翻一倍。
首先,你要問他我們需要達(dá)到一個怎么的目標(biāo)。
然后,我們要了解一下整個環(huán)境(架構(gòu))包括代碼(當(dāng)然你需要了解一下業(yè)務(wù)邏輯,大致了解一下,肯定沒壞處),有時間多和開發(fā)溝通一下,問問代碼中有多少坑要填,這很重要。
往往他們優(yōu)一下代碼中的SQL查詢,比你優(yōu)化系統(tǒng)多少天都來的有效果,哈哈。
具體調(diào)優(yōu)步驟
- 如果你不懂系統(tǒng)的參數(shù),你千萬不要對系統(tǒng)的參數(shù)進(jìn)行隨意的改動,不然你會后悔。
- 每次只對一種系統(tǒng)資源進(jìn)行系統(tǒng)調(diào)試,如CPU、或內(nèi)存、磁盤。
- 每次改動盡量少的參數(shù)設(shè)置,推薦每次修改一個設(shè)置。
- 分析一項系統(tǒng)資源時,使用多種工具,往往有意想不到的結(jié)果。
- 不及勝于過之(寧愿少做一點,不要做過頭了,性能已達(dá)到要求就不要隨意亂動,做好你的監(jiān)控)。
檢測調(diào)優(yōu)結(jié)果
每次性能調(diào)優(yōu)后必須對性能進(jìn)程檢測,如Web服務(wù)器的ab工具,就是一個很好的檢測工具,每次調(diào)優(yōu)后都能看到具體的變化。
5.性能監(jiān)控
性能監(jiān)控這個很重要,具體包括服務(wù)器性能監(jiān)控和具體服務(wù)的性能監(jiān)控。下面我們說一說具體有哪些性能監(jiān)控指標(biāo):
服務(wù)器的性能監(jiān)控
- CPU 使用率
- CPU負(fù)載
- 內(nèi)存使用率
- 磁盤I/O
- 網(wǎng)絡(luò)流量
- 磁盤空間
- 系統(tǒng)進(jìn)程
服務(wù)的性能監(jiān)控(MySQL)
- MySQL查詢吞吐率,包括Change DB、Select、Insert、Update、Delete
- MySQL持久連接利用率
- MySQL查詢緩存空間使用率
- MySQL查詢緩存***率
- MySQL緩存查詢數(shù)
- MySQL索引緩存***率
- MySQL索引讀取統(tǒng)計
- MySQL連接吞吐率
- MySQL連接緩存***率
- MySQL并發(fā)連接數(shù),包括***允許連接數(shù)、實際***連接數(shù)、當(dāng)前連接數(shù)、活躍連接數(shù)、緩存連接數(shù)
- MySQL流量統(tǒng)計
- MySQL表統(tǒng)計鎖定
八、總結(jié)
在這篇“性能優(yōu)化概述”的博文中我只是給大家講解一下具體的優(yōu)化思路,幫助大家理解性能優(yōu)化,這樣大家更容易理解一些,讓大家知道性能優(yōu)化并不是傳說中的那么難,難到不可動手去做,只要我們掌握好方法,什么難題都可以解決。
好了,說了這么多。希望大家有所收獲吧^_^……