性能优化(概述)
2019獨角獸企業重金招聘Python工程師標準>>>
軟件系統質量特性
安全性
同時兼顧向合法用戶提供服務,以及阻止非授權使用軟件及資源的能力。
健壯、可靠
軟件系統在一定的時間內無故障運行的能力、容錯能力、恢復能力?。
可用性、易用性、性能
性能是指軟件及時提供相應服務的能力。 具體而言, 性能包括速度、 吞吐量和持續高速性三方面的要求 。
可擴展、可維護、可移植
正在運行的軟件系統以適應新需求、變化了的需求的難易程度
?
性能的定義及表現
定義
多快給用戶想要的結果
考察兩個方面:
1.流暢度
2.更少的資源占用
一些證據
頁面加載超過3秒,就會發生不好的事情!? ??
反面教材:google.com? ? 正義的速度:baidu.com
計算結果越快出來越好!? ?
消耗大量資源的AI ?alphaGo? ?VS? ?省電強勁的大腦 柯潔
?
本次專題的主要內容
性能是平衡之道
在有限的資源下,提供最佳的訪問能力及處理速度。木桶原理之:發現最差瓶頸,提升整體效率。呑吐量和響應速度兼顧。
調優是量體裁衣
根據不同的場景,針對性的提高適用性。如:前臺的響應速度,后臺的統計結果。前者用戶耐心有限,后者需要豐富數據分析。
?
目標
對性能有正確的認識??
量體裁衣,合理優化
全局思維
整體優化,消除瓶頸
基礎的性能觀察及調整
日常監控,配置調整
高級話題延伸
并發優化
?
概念
DNS時間、建立連接時間
輸入網址名稱(網址)后,瀏覽器通過查詢DNS服務器所需要的時間TCP,請求方(瀏覽器等)與接受方(服務器)經過一系列協商所需要的時間。
服務器處理時間
接收方(服務器)處理請求所需時間
數據傳輸時間
從請求方(瀏覽器等)到接收方(服務器)以及從接收方(服務器)到請求方的時間
白屏及首屏時間
輸入網址后至瀏覽器出現至少1px圖片為止用戶瀏覽器首屏內所有的元素呈現所花費時間
用戶可操作時間
網站某些功能可以使用的時間
頁面總下載時間
網站中所有資源加載完成并且可用時間
?
不同范圍的全局性能思考
應用場景
計算密集型,集中式資源使用
IO密集型,分散型資源利用
硬件環境
單機,CPU、內存、磁盤、網絡
多機,存儲架構、網絡架構、應用架構
軟件環境
同構系統,多進程、多線程、多層邏輯
異構系統,認證鑒權、數據交互、服務層級
?
一些術語
QPS????每秒查詢次數
TPS????每秒傳輸的事物處理個數
呑吐量????單位時間內成功地傳送數據的數量
響應時間????用戶指令到用戶接收結果的時間
?
IO密集型
性能瓶頸
網絡IO,阻塞式IO是最大的問題
磁盤IO,SSD
CPU
內存
磁盤
網絡:帶寬問題,CDN問題
VPS集群
Linode,日本機房,155ms
DigitOcean
阿里云,國內,香港,50ms
騰訊云,國內,香港,50ms
?
運維監控(我們不是運維)
?
處理模式
調優順序-從底向上找出瓶頸
提高硬件能力
提高系統處理能力
安裝高性能的軟件
保障安全性
服務器配置優化
服務器環境安裝
Nginx:提高Tomcat靜態文件處理能力、負載均衡、反向代理
Centos環境,安裝服務端軟件,統一采用yum方式
服務器環境配置
Nginx的主配置目錄:/etc/nginx/
Nginx的server配置目錄:/etc/nginx/conf.d/
Nginx配置:
進程數????工作線程數????連接超時????上傳文件限制????緩存????日志路徑
啟動服務????停止服務????配置語法測試????平滑加載
?
服務器處理方法
服務器環境優化
網絡優化????安全性配置????用戶組權限????目錄規劃
服務器常規監控
Top命令????Free命令????Df命令
工具:? Xshell????Filezilla
?
?
?
?
?
轉載于:https://my.oschina.net/u/3728166/blog/2989638
總結
- 上一篇: STIMULUS(二) —— Hello
- 下一篇: postgresql dead_tupl