大家好:
目前公司架設Moodle (php+mysql)
該程式會有大量的碎資料 叫MoodleData 上課PPT 考試圖案(數學方程式)
但是最近效能不彰,天天被釘在牆上。
程式是Opensource 他們會不定期的有更新版本
所以從改程式下手可能會時常需要改,因為他不是跑Stored Procedure
會想從架構及硬體面先下手
目前環境: hp proliant dl580 g7
OS: Vm ESXI 6.0
CPU: Xeon X7542 兩顆
RAM: 40GB
HDD: 300GB 10K x7 Raid5 + Hotswap 1 (Total 8)
WEB
CPU: 12 core
RAM: 16GB
WAMP Server PHP5.6
DB
CPU: 4 core
RAM: 8GB
MYSQL Community
歷史介紹:
(沒上VM)
以前是Centos 掛載 Windows Server NFS分享Moodle Data(先人做的)
但是被反應 考試的時候抓資料很慢
然後這樣的掛載方式常常出問題不太穩定
後來我改成 Centos DB+WEB同一台
但是同仁反映 操作上不如Windows順 複製資料等
備份主機也對Linux相容性不佳
到現在的架構(全上VM)Server 2016是有大量授權的,所以授權不是問題。
目前問題:
DB:
經過我一個月觀察DB越來越慢,線上才兩個人點東西(要從DB拉)就要五秒
CPU都在10~50%內 RAM也都在4GB內
網路上有很多文章說 Mysql裝在 Linux可能會比較快之類的
但不知道改MSSQL會不會效能更好?
在能力範圍內 能調的參數 Buffer Cache等 都開很大了(依照phpmyadmin給的建議)
**我想問:**是因為DB裝在Windows所以效能差 還是單純硬碟RAID5應該改為0+1?
不知道其他公司都怎麼做?
這確實沒有好好規劃,希望能做些改善
WEB不知道是否也有影響
目前是用wamp server(www.wampserver.com)跑
有Loading比較小的網站在其他主機上也是這樣跑 目前沒遇到問題
如果換成Server 2016內建的 IIS10 跑PHP會不會比較好?
平均使用人數:1-30人
尖峰使用人數:50-200
資料量:
一年會有兩千門課
每一門課 若有一個線上考試 每一次考試有50題
作答一次就50筆資料
50人做 就有2500筆
10組人做就有25,000
目前DB有17.8GB 104年迄今約(一年半)
Switch 都是Cisco 1GBS 搭N3k
中華電信 固定IP 雙向100MB 五條 + LoadBalance (MHG3500)
條例順序 前面三條是 DENY PORT &惡意網站&內部不允許上網的網站
僅在DNS後面而已第四條
目前也有要邊預算要改善這問題
不知道從何編起,怕編了沒什麼改善就慘了
2017/09/30 更新:
感謝各位的指教,因為各位的題點,我發現是硬碟或RAID問題。
跟其他VM比較之下,這真是慢的誇張