30萬條2GB數據網站平臺生成HTML網頁每分鐘超過1000張

使用DEDECMS一年多時間,看了論壇上很多站長在抱怨DEDECMS系統生成HTML速度慢,其實不然,只要恰當對服務器平臺和數據庫進行優化,生成速度會有質得提升。

下面我提供一組數據,大家對比一下你網站的數據量和生成速度,能不能有提升的空間。可能有部分站長優化得比我好得多,我只在這裏獻醜了!

並且提供優化的方法,可能這些方法是官方爲商業客戶服務的,大家有能力的話可以自己試着做一下。

本人負責建設的網站現有780-1000的併發連接(實時查看網址:http://www.tzsy.cn/status)網站數據庫有30多萬條,內容大概有六個模型,六個內容表數據量比較大,全部合起來有3GB,在給其中一個有5萬多條的欄目生成網頁時每分鐘超過1000張的速度。


大家分析一下上面三張圖的數據,DEDECMS的潛力還是可以挖掘的。

硬件的基本情況,不算特別好,IBM服務器:CPU 四核至強,內存2GB,數據庫安裝在146GB的SAS硬盤上,站點文件存放在500GB的SATA硬盤中。

現在我簡單描述一下優化措施。

一、安裝 CentOS 5.2,裝最基本的組織,MySQL,PHP,APACHE都不要安裝,以後自己下載源碼編譯安裝。
安裝完成後運行setup配置系統服務命令,設置以下僅列出需要啓動的服務,未列出的服務一律關閉:
crond
irqbalance 僅當服務器CPU爲S.M.P架構或支持雙核心、HT技術時,才需開啓,否則關閉。
microcode_ctl
network
iptables
vsftpd
sshd
syslog
yum-updatesd

二、搭建勝過Apache十倍的高併發Web服務器 Nginx + PHP(FastCGI)
具體配置不再描述,大家參考張宴的文章 http://blog.s135.com/nginx_php_v5/
提供我的配置截圖

三、安裝編譯 MYSQL數據時編譯參數設置注意三點
1. -static 13%
--with-client-ldflags=-all-static
--with-mysqld-ldflags=-all-static
靜態鏈接提高13%性能

2. Unix Socket 7.5%
--with-unix-socket-path=/tmp/mysql.sock
使用unix套接字鏈接提高7.5%性能,所以在windows下mysql性能肯定不如unix下面

3. --enable-assembler
允許使用匯編模式(優化性能)

四、優化DEDECMS數據表索引。官方的默認索引不是最優化的,可能DEDE官方有所保留。

大家下載一個叫 Navicat for MySQL 的客戶端軟件連接到MySQL Server數據上進行管理操作。

個人認爲:凡是要排序的字段(比如文檔主表的 sortrank、senddate、pubdate、click、goodpost、badpost)和查詢條件的字段(比如:typeid,ismake)以及文檔ID都要建立索引,如果有一個沒有建立,將嚴重影響MySQL運行效率,導致生成HTML時速度慢。

當系統啓用了審覈機制以後,標識文檔審覈屬性的字段ismake必須建立索引。

注意:click這個字段,記錄文檔點擊量,此字段值更新頻繁,建立索引後對系統維護索引帶來一定的負荷,大家自己權衡。有人說頻繁更新的字段建立索引會容易導致數據庫損壞,這個我還沒有遇到過,需要考證。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章