0512- 聯系
作為一名運維工程師,工作中大的希望就是自己運維的網站能夠穩(wěn)定運行,但理想很豐滿現實很骨感,實際情況是總會有各種各樣狀況導致網絡、服務器或者應用環(huán)境發(fā)生故障。面對這種情況,我覺得還是要能從故障中總結出經驗規(guī)律,讓發(fā)生的幾率不斷的降低。要完成穩(wěn)定和兩者中的任何一個都是一個極具挑戰(zhàn)的事情,這里我以維護自己的blog為例來闡述一下我對穩(wěn)定這個詞的詮釋和理解。
我的Blog架設在wordpress環(huán)境上的,記錄了工作中的一些經驗總結和隨筆文章,雖然是個人網站,但麻雀雖小,五臟俱全,有一定的代表性。
一. 穩(wěn)定之硬件穩(wěn)定
硬件是基礎設施,必須打好硬件穩(wěn)定的基礎。傳統(tǒng)的硬件選型一般都是購買HP,DELL的機架式服務器,根據自己的需求選擇CPU,內存,硬盤等,這種方式有一個弊端就是不能很方便的對硬件進行后期擴容,買了后一般情況下就定型了,而且還要托管,購買帶寬,后期的硬件維護也是需要自己來做。面對這些問題,我覺得選擇當下比較炙手可熱的云服務器是個不錯的選擇。它解決了:
1)硬件型號不再重要,自然也就不會成為網站發(fā)展的瓶頸,CPU,內存,硬盤等硬件的大小都是彈性的,根據自己使用的情況隨時可以增大和減小
2)云服務器提供商提供托管場地和網絡帶寬設施
3)因為云服務器提供商一般都有大量的服務器,所以會專門有一個機房工程師每天做硬件,網絡的巡檢工作,及時發(fā)現問題并將基礎問題處理在萌芽階段
4)對磁盤IO要求比較高的,可以選擇購買本地磁盤和SSD磁盤來解決問題
總的來說,選擇云服務器比較省心,而且國內的云服務器也逐漸的成熟起來,我個人使用云服務器這種方式7個月了,截止目前,硬件,網絡都沒有出現過問題,還是比較穩(wěn)定的。當然大型云服務器提供商是比較好的選擇,阿里云、騰訊云、Ucloud都不錯。具體選擇哪家,可以根據自己的實際情況來酌情選擇。
二. 穩(wěn)定之軟件穩(wěn)定
軟件是具體提供服務的應用組件,要做好這個穩(wěn)定我覺得比硬件難一些了,方方面面都要考慮清楚,這里從下往上來逐個分析吧:
1)Wordpress是一個PHP環(huán)境的程序,那么Linux作為系統(tǒng)環(huán)境就是一個很好的選擇,其實穩(wěn)定的另一個特征就是當出現了故障時能夠很快的排除故障,在成百上千的Linux發(fā)布系統(tǒng)中很多人終選擇Redhat,CentOS肯定是有其原因的,CentOS是基于企業(yè)級linux系統(tǒng)發(fā)布Redhat編譯而來,兼容性好而且免費使用,網絡中有大量的技術文章可以借閱參考,64位也會逐漸的取代32位系統(tǒng),我后選擇的是CentOS6 64位系統(tǒng)環(huán)境。這里不是說讓大家全部選擇此發(fā)行版,而是一個建議,在實際選擇過程中好根據自己的業(yè)務類型,選擇一個能用上3到5年的系統(tǒng),不折騰。
2)nginx、mysql、php的搭檔組合有逐步取代AMP組合的趨勢,V1.0以上的nginx,V5.1以上的mysql,V5.4以上的PHP,這個版本選擇是目前比較實用的組合,能夠支撐一段時間不需要在更新了。
3)組件選擇好后,比較關鍵的就是配置好這些組件了,配置這個過程沒有一個統(tǒng)一的標準,需要不同參數也就不同,但不管環(huán)境怎樣,還是有幾個比較通用的法則:
A. 一個PHP和nginx進程大約占用內存20M,大允許的進程數是要根據自己的實際內存大小來動態(tài)調整,否則可能導致內存耗盡而系統(tǒng)崩潰
B.調整參數的原則就是讓自己的硬件資源能夠充分利用,大使用率根據28原則
C.配置的過程是一個循序漸進的過程,很多時候也是在處理問題時逐步總結出來優(yōu)配置
三. 穩(wěn)定之實時監(jiān)控
網站對外發(fā)布后,剩下的任務就是要網站不出故障,持久穩(wěn)定運行了。要做到這一點,就要對網站和硬件的運行情況有一個的了解才可以。掌握的數據越多,就對自己的網站運行情況越有利。
可用性監(jiān)控:
網站當下是否能夠正常訪問,這是一個基本的要求。但我們不可能實時去盯著,這里需要有個實時監(jiān)控的服務去不斷的探測,提供這樣服務的工具有很多,例如nagios,zabbix等開源產品就是專門做這個事情的,周期性的探測網站的可用性,不過這種產品有一個很大的局限性,就是nagios和zabbix是部署在和自己網站同樣的網絡環(huán)境中,常常會出現nagios探測是好的,但外部訪問卻不行的狀況。
這里我選擇了一個第三方公司的產品——云智慧的監(jiān)控寶,來做我的blog的可用性監(jiān)控,其實現原理是使用它在全托管的監(jiān)測服務器來周期性的訪問我的blog,這種監(jiān)控比較接近于實際用戶訪問,比較有說服力,如果發(fā)現了問題,會有一個告警信息發(fā)送到手機、郵件上。
四. 穩(wěn)定之壓力
壓力的目的是為了能夠對自己網站的大負載能力有一個預估值,原則是一個有復雜業(yè)務邏輯的動態(tài)頁面為好,通過壓力得出自己網站的大并發(fā)值和承載能力。得出這個值之后,剩下的在配置參數的時候就有依據了。壓力的方法有很多種,比較常見的有ab,loadrunnner等工具。
五.穩(wěn)定之硬件資源使用監(jiān)控和并發(fā)數監(jiān)控
壓力的目的就是為了能夠在這一環(huán)節(jié)有的放矢,網站上線后通過可用性監(jiān)控得知網站是否能正常訪問。在通過硬件資源使用情況和web服務的并發(fā)數監(jiān)控,在監(jiān)控中將告警閥值設置為壓力過程中的80為準。通過這樣的實時監(jiān)控,就對自己的服務器的運行情況有一個立體式的掌控,讓其能夠運行在正常的區(qū)間中。
總結:
服務的穩(wěn)定是一個持續(xù)的過程,通過時間的積累對自己維護的業(yè)務運行情況越來越熟悉,對架構的掌握也越來越透徹,將網站架構中的薄弱環(huán)節(jié)加固,再通過后期的實時監(jiān)控,對網站的整體運行情況有一個清晰的認識,由此來讓自己運維的網站穩(wěn)定運行。
0512- 聯系
更多請點擊進入:http://gslpw.cn/jigou/179523
學校地址:蘇州市干將東路666號和基廣場433室(輕軌1號線臨頓路站)
蘇州網站培訓|蘇州網站培訓哪家好|蘇州網站培訓多少錢