测试服务器性能常用算法,服务器性能剖析(profiling)之——简介
性能剖析(profiling)是專注于測量服務器時間花費在哪里的一種技術,這里“性能即響應時間”。
測量是一項很有挑戰性的工作,并且分析結果也同樣有挑戰性,測出時間花在哪里,和知道為什么花在那里是兩碼事……
性能剖析一般有兩個步驟:
測量任務所花費的時間;
對結果進行統計和排序,將重要的任務排到前面。
關于性能剖析報告:
任務名、任務的執行時間、任務的消耗時間、任務的平均執行時間、該任務執行時間占全部時間的百分比。
性能剖析報告會按照任務的消耗時間進行降序排序。
有兩種比較常見的情況會導致不合適的測量:
1、在錯誤的時間啟動和停止測量
2、測量的是聚合后的信息,而不是目標活動本身
完成一項任務所需要的時間可以分成兩部分:執行時間和等待時間。因此,性能剖析也有兩種類型:基于執行時間的分析和基于等待的分析。
基于執行時間的分析:研究的是什么任務的執行時間最長
基于等待的分析:判斷任務在什么地方唄阻塞的時間最長
如果不能確認問題是出在執行還是等待上,那么兩種方式都需要試試。
有很多因素會導致性能瓶頸:
1、外部資源,比如調用了外部的Web服務器或者搜索引擎
2、應用要處理大量的數據,比如分析一個超大的XML文件
3、在循環中執行昂貴的操作,比如濫用正則表達式
4、使用了低效的算法,比如使用暴力搜索算法來查找列表中的項
性能剖析很好用的一個工具:New Relic。下面簡單說一下這個工具的使用(其他網頁摘錄的內容):
需要在網站上注冊一個新帳號,根據服務器端的應用框架選擇安裝對應的插件,它提供了很多常見應用框架插件,以Rails為例子,只需要在Gemfile配置,執行bundle install即可:gem 'newrelic_rpm'
然后下載對應的newrlic.yml配置文件,放入到應用目錄,進行一些參數的調整。將應用重新部署以后,等幾分鐘,讓插件收集到性能相關數據,再去訪問NewRelic網站,就可以看到各種圖表了
總結
以上是生活随笔為你收集整理的测试服务器性能常用算法,服务器性能剖析(profiling)之——简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Text_classification
- 下一篇: 【DKN】(六)KCNN.py