社交系统ThinkSNS+ 性能简述
概述
???????? 本文主要描述 ThinkSNS Plus 服務(wù)端系統(tǒng)性能、服務(wù)端高性能部署方案及優(yōu)化措施、服務(wù)端系統(tǒng)持續(xù)優(yōu)化及升級策略。本文未涉及前端( PC 站點、 H5 站點、 Android 、 IOS )性能方案。
系統(tǒng)吞吐量
?????? ?? 壓測的服務(wù)器為一臺阿里云 ECS 服務(wù)器,服務(wù)器配置為 2vCPU/4GB/5Mbps/ 普通云盤 200G 。安裝 thinksns plus 后給數(shù)據(jù)庫添加了少量數(shù)據(jù),保證每個接口都是有數(shù)據(jù)的狀態(tài);然后在服務(wù)器本地壓測一些常用的數(shù)據(jù)讀取接口,壓測結(jié)果吞吐量為 30QPS 左右。
????????30QPS 是指系統(tǒng)在每秒可以處理 30 個請求,一天有 86400 秒,算下來一天可以處理約 260 萬個請求;根據(jù) thinksns plus 移動端統(tǒng)計,平均每頁面 3 個請求,假設(shè)用戶每日平均訪問 50 個頁面,計算結(jié)果為支持 1.7 萬左右的日活用戶(日活用戶不是注冊會員數(shù)量)。當然,這樣計算出來的結(jié)果是不準確的,計算中沒有考慮峰值和其他因素,需要根據(jù)實際業(yè)務(wù)做分析。
系統(tǒng)部署和優(yōu)化
系統(tǒng)和基礎(chǔ)軟件優(yōu)化
??????? ? 優(yōu)化系統(tǒng)和基礎(chǔ)軟件( nginx 、 mysql 、 php 等)能讓系統(tǒng)支持更多的連接數(shù)和請求,并且運行起來更穩(wěn)定。具體的優(yōu)化項根據(jù)不同的系統(tǒng)環(huán)境和業(yè)務(wù)需求,自行百度或谷歌上面有非常多的優(yōu)化教程,不在一一列舉。
ThinkSNS Plus部署優(yōu)化
1.? 使用 php7 , php7 較之前的 php5 版本性能提升一倍以上。
2.? 開啟 PHP OPcache ,生產(chǎn)環(huán)境應(yīng)該開啟 OPcache ,性能會有巨大提升。
3.? 關(guān)閉調(diào)試模式, .env 文件中, APP_DEBUG 設(shè)置為 false ;可減少程序邏輯處理。
4.? 配置信息緩存 ?php artisan config:cache ,緩存配置文件,減少磁盤 IO 。
5.? 路由緩存 ?php artisan route:cache ,緩存路由文件,減少磁盤 IO 。
6.? 自動加載優(yōu)化 ?composer dumpautoload ,優(yōu)化自動加載。
7.? 配置并使用 ?redis /memcached 來存儲會話,從內(nèi)存中讀取會話信息沒有磁盤 IO 。
8.? 配置并使用 ?redis /memcached 來存儲緩存數(shù)據(jù),從內(nèi)存中讀取緩存數(shù)據(jù)沒有磁盤 IO 。
9.? 將程序和數(shù)據(jù)安裝到 SSD 磁盤;以阿里云 ECS 云盤為例: SSD 云盤 16000IOPS+ ,而所謂的高效云盤不過 3000IOPS ; SSD 云盤效率是高效云盤的五倍以上。
10.? 采用獨立的數(shù)據(jù)庫服務(wù)器或采用云數(shù)據(jù)庫如阿里云: RDS 。
11.? 采用獨立的緩存服務(wù)器或采用云緩存系統(tǒng)。
12.? 使用 CDN 加速圖片、視頻、文件的訪問和下載。
13.? 掛載單獨的磁盤用于存儲圖片、視頻和其他用戶上傳的文件。
以上優(yōu)化項 #7~#13都不是必須的,但是建議都進行配置或選擇性配置。按要求優(yōu)化以上內(nèi)容之后,整體性能可以提高一倍以上。
分布式部署
???????? 分布式部署為解決更大的業(yè)務(wù)需求,如更大的請求峰值、數(shù)據(jù)庫讀寫性能瓶頸,網(wǎng)絡(luò)帶寬瓶頸等;目標為建立高可用性系統(tǒng),單點故障不影響系統(tǒng)服務(wù)。目前 thinksns plus 支持的分布式部署方案如下:
l? 應(yīng)用程序負載均衡,多臺服務(wù)器部署 thinksns plus 系統(tǒng),通過負載均衡器轉(zhuǎn)發(fā)請求到部署的服務(wù)器。 thinsns plus? 無需任何配置,但是要將會話數(shù)據(jù)、緩存數(shù)據(jù)、用戶上傳文件單獨部署,也就是上面 “thinksns plus? 部署優(yōu)化中的 #7 、 #8 、 #10 、 #13 條 ” 。
l? 數(shù)據(jù)庫讀寫分離,安裝好數(shù)據(jù)庫之后,只需在簡單配置即可支持,也可以使用云數(shù)據(jù)庫做讀寫分離。
l? 分布式緩存系統(tǒng),搭建好分布式緩存服務(wù)器后僅需簡單配置即可支持,也可以采用兼容 redis 協(xié)議的云緩存系統(tǒng)。
l? 分布式文件系統(tǒng)(目前不支持,已列入計劃,之后會支持云存儲)
系統(tǒng)優(yōu)化和升級
??????? ? 以上提及的各種優(yōu)化部署策略,部分都是建立在增加服務(wù)器的基礎(chǔ)上提升系統(tǒng)的處理能力,并未涉及到系統(tǒng)程序的優(yōu)化,那是不是程序優(yōu)化就不重要了?
???????? 當然不是,初期,增加服務(wù)器可以快速擴容系統(tǒng)處理能力,而且也是性價比最高的方式;假如聘一個人專門優(yōu)化程序,一年 10 萬薪資,那這個人一年能提高程序的一倍性能也是很不錯了,但這十萬要是花在服務(wù)器上面,性能可能立即提高 10 倍。
???????? 而且, thinksns plus 在不斷優(yōu)化和改進產(chǎn)品,每次版本迭代,已安裝的 thinksns plus 程序都可以通過自動或手動的方式合并最新的特性,這其中有很多特性就是針對于性能的優(yōu)化。保持更新不間斷,已安裝的 thinksns plus 程序性能也越來越好。
來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/31448874/viewspace-2641268/,如需轉(zhuǎn)載,請注明出處,否則將追究法律責(zé)任。
轉(zhuǎn)載于:http://blog.itpub.net/31448874/viewspace-2641268/
總結(jié)
以上是生活随笔為你收集整理的社交系统ThinkSNS+ 性能简述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: arm对应hex_ASCII与HEX对照
- 下一篇: windows如何删除默认打开方式