寫在前面,竊以為衡量伺服器的標準不僅僅只限於伺服器的效能,更重要的是價效比。舉個例子,最近dmzj的土豆田(伺服器)一直在反覆的刨地(維護公升級),但如果按照阿里的伺服器配置,明顯的會有大材小用的感覺。因為dmzj的使用者本來就不多,會造成大量的伺服器資源,開發成本,硬體成本的浪費。說白了就是夠用就行,合適的才是最好的。
伺服器的效能指標有很多,我們先介紹一些基本概念,再來看看衡量伺服器效能的正確姿勢:
關於吞吐量的定義有很多,指的是在一次效能測試過程中網路上傳輸的資料量的總和,也可以通俗的理解為固定時間間隔內的處理完畢事務的個數。
一次事務的處理時間。通常指從乙個請求發出,到伺服器進行處理後返回,再到接收完畢應答資料的時間間隔,單位一般是毫秒
指同時訪問伺服器站點的連線數
在這裡我們對測試工具不做介紹,網上有各式各樣的工具,自己搜吧。在這兒主要討論一下測試時需要注意的幾點:
測試資料不應取平均值。不限於伺服器測試,平均值在各個領域都不靠譜,就像我和馬雲的平均工資,北京和底特律的平均房價,都是一些毫無意義的資料。在伺服器效能測試時一定不要被平均值所迷惑,往往計量單位是毫秒級的,如參考平均值測試結果產生兩位數的倍數偏差是很正常的。正確的做法是用百分比分布統計,也就是英文中的tp – top percentile ,tp50的意思在,50%的請求都小於某個值,tp90表示90%的請求小於某個時間。比如:我們有一組資料:[ 10ms, 1s, 200ms, 100ms],我們把其從小到大排個序:[10ms, 100ms, 200ms, 1s],於是我們知道,tp50,就是50%的請求ceil(4*0.5)=2時間是小於100ms的,tp90就是90%的請求ceil(4*0.9)=4時間小於1s。於是:tp50就是100ms,tp90就是1s。
對於互動式應用來說,吞吐量指標反映的是伺服器承受的壓力,在容量規劃的測試中,吞吐量是乙個重點關注的指標,因為它能夠說明系統級別的負載能力,另外,在效能調優過程中,吞吐量指標也有重要的價值。但是如果只看吞吐量不看響應時間,那麼吞吐量是毫無意義的。因為哪怕你的吞吐量再大,但需要舉個例子,10s的響應時間,這個系統明顯是不合格的,吞吐量也毫無意義。當併發量(吞吐量)**的時候,系統會變得越來越不穩定,響應時間的波動也會越來越大,響應時間也會變得越來越慢,而吞吐率也越來越上不去(如下圖所示),包括cpu的使用率情況也會如此。所以,當系統變得不穩定的時候,吞吐量已經沒有意義了。吞吐量有意義的時候僅當系統穩定的時候。所以,吞吐量的值必需有響應時間來卡。比如:tp99小於100ms的時候,系統可以承載的最大併發數是1000qps。這意味著,我們要不斷的在不同的併發數上測試,以找到軟體的最穩定時的最大吞吐量。
應當保證成功率。如果請求不成功,那麼任何測試都是毫無意義的。
效能結果分析需要綜合硬體,作業系統,應用程式等多方面定位。
硬體
關於硬體,竊以為,考慮價效比後,選擇最合適的就好,可以避免資源和經費的浪費。
2.作業系統
不同的作業系統在核心實現上可能各不相同,因而對執行在上面的應用程式來說可能影響比較大。
筆者並沒有做過分析不同作業系統對伺服器效能的影響,因為只用過linux開發伺服器程式。linux作業系統在這十幾年發展的異常迅猛,目前大部分的伺服器都是執行在linux作業系統上的。linux目前具有最好的生態系統,伺服器端的各種軟體都為它而設計,預設都認為你是在 linux 上跑,你要是整乙個非 linux 的伺服器,你得有足夠的心理準備,因為出現任何問題,你可能未必能找到能幫你解決問題的人。
3.程式**
應用程式本身實現比如程式中需要頻繁申請記憶體,使用bzero和memset對伺服器效能影響差距可能會很大。
另外程式中的一些查詢操作,採用不同的資料結構,可以實現時間和空間上的相互轉化,從而影響伺服器的效能。
確保採用的是高效能io模型。
如何衡量乙個量化策略的好壞
轉 如何衡量乙個量化策略的好壞?我們認為有三點,一是有比較穩定的收益,二是有嚴謹的回測,三是有清晰的邏輯,這才能算得上乙個好的量化策略。大家可以對照這三條比較一下,如果滿足這三條,我們就稱它是乙個好的量化策略.國泰君安 金融工程領域研究首席分析師劉富兵 量化投資以投資者的智慧型為核心,以計算機為工具...
如何評價乙個演算法的好壞
首先,這個演算法必須是正確的 其次,好的演算法應該是友好的,便於人們理解和交流,並且是機器可執行的。這個演算法還需要足夠健壯,即當輸入的資料非法或不合理時,也能適當的做出正確的反應或進行相應的處理 最後它還必須擁有高效率和低儲存量要求。也就是所謂的時間複雜度和空間複雜度 1.時間複雜度 定義 在電腦...
如何搭建乙個linux伺服器
之後依據提示,step by step 安裝 安裝好了ubuntu 系統後!然後作為乙個伺服器,就必須要說明一點設定ip 作為虛擬機器的話,直接橋接即可!然後 1 在linux下ping 本地 win下的 ip 能ping 通 win下檢視你ip ipconfig all 2 在win下ping l...