寶塔面板教程大全–寶塔linux面板性能設置
性能設置:
內存清理:
添加計劃任務,定時清理內存,可以設置為每天一次,時間建議選擇在網站訪客最少的時間段,個人建議凌晨4點30分左右。(清理內存時,正在訪問的訪客可能會出現404)
添加Swap交換分區(類似於Windows的虛擬內存):
Swap推薦值:
物理內存Swap
512M 1024M
1GB 1500M
2GB 2048M
4GB 4096M
6GB+ 4096M
建議不要設置過高,這個內存是在磁盤上虛擬的,速度較慢,當我們服務器內存足夠時盡量使用服務器內存。
PHP擴展相關:
若您的程序不需要PATH_INFO,請把它關閉
若確定您的程序不需要,盡量不要安裝ZendGuardLoader,ioncube解密擴展
若程序支持,盡量安裝fileinfo、exif擴展,以提升站點性能和安全性
若程序支持,盡量使用imagemagick代替PHP自帶GD,以提升性能
安裝PHP緩存擴展,根據即將部署的站點需求,盡量使用更高的PHP版本,另外緩存安裝建議如下: 腳本緩存:xcache、opcache 任選一項安裝,PHP5.2-5.4建議使用xcache,PHP5.5以上建議使用opcache 內容緩存:若程序支持,建議優先順序如下: redis > apc > memcached > memcache 注意:內容緩存和腳本緩存,都各只安裝一個,不要安裝多個!
PHP並發調整建議:
注1:容易受到CC攻擊的站點使用的PHP版本,盡量不要設置過高的並發,以免服務器被打死
注2:VPS性能參差不齊,以上建議僅供參考,請根據實際使用效果自行調整
注3:不建議設置超過300並發上限,哪怕您的服務器性能足夠好;若發現並發不夠用,請嘗試優化站點數據庫緩存可能更有效。
MySQL數據庫性能設置
因為mysql是網站數據的核心,所以以下操作在進行之前,首先進行數據備份。防止數據意外丟失。
PHP加上mysql的環境經常會遇到各種性能問題,常見的有CPU、mysql、php、磁盤IO、緩存等各個方面。在這些問題當中mysql是最常見也最難解決的一種。
常見的mysql性能優化有使用Redis、Memcached等緩存擴展插件來解決。然而這些擴展使用的前提是網站程序支持,大多數程序並不能夠完美支持這些插件。
今天就寫下mysql本身配置方面的性能優化。
通常mysql性能優化有以下幾個部分:
1、MySQL配置參數調優(需要根據網站運行情況調整)
2、數據表索引調優(效果明顯,但通常優秀的開源程序都不需要調整)
3、SQL語句調優(這是程序員或DBA幹的事)
今天就研究下mysql本身配置的性能調整。
圖一
圖二
參數解讀:
1、活動/峰值連接數
(圖1)中當前活動的連接為1個,自MySQL服務啟動以來,最高連接數為54;當最高連接數接近或等於(圖2)中的max_connections時,應適當增加max_connections,需要注意的是,不要一下子增加過多,建議每次增加50,觀察一段時間,不夠再繼續增加。
2、線程緩存命中率
(圖1)中線程緩存命中率為99.78%,若這個值小於90%,建議適當增加(圖2)中的thread_cache_size,建議每次增加8。
3、索引命中率
(圖1)中索引命中率為99.50%,若這個值小於95%,建議適當增加(圖2)中的key_buffer_size,建議每次增加64,需要說明的是,若您的數據庫使用的是Innodb引擎,可忽略這個選項
4、Innodb索引命中率
(圖1)中Innodb索引命中率為100%,若這個值小於95%,建議適當增加(圖2)中的innodb_buffer_pool_size,建議每次增加64,需要說明的是,若您的數據庫沒有使用Innodb引擎,可忽略這個選項
5、查詢緩存命中率
MySQL查詢緩存是個比較受爭議的功能,個人建議當你有在使用redis、memcached等緩存軟件時,在(圖2)中將query_cache_size設為0可以將其關閉,當你沒有使用緩存軟件,有多餘的內存使用,且數據庫瓶頸明顯存在時,可以嘗試開啟查詢緩存,這是個非常依賴數據表結構及SQL語句優化的功能,若數據表結構和SQL語句都針對查詢緩存進行過優化,它的效果還是很不錯的。
6、創建臨時表到磁盤
(圖1)中創建臨時表到磁盤的比例是0.42%,這說明大部分臨時表創建到內存了,不會過多增加磁盤IO的開銷,建議,當比例大於2 %時適當增加(圖1)中的tmp_cache_size,建議每次增加32,當比例大於60%時,放棄吧,有些開源程序並沒有專門優化過SQL語句,所以在運行過程中會開啟大量臨時表,加多少緩存都是不夠用的。
7、已打開的表
當(圖1)中的已打開的表接近或等於(圖2)中的table_open_cache時,可以適當增加table_open_cache,但若設置過大可能導致您的程序頻繁中斷MySQL連接,建議在1024以內,最大不要超過2048。
8、沒有使用索引的量、沒有使用索引的JOIN量
若不為0,就檢查下數據表索引吧,其實只要沒有瘋漲,比如一天增漲幾千,一般可以忽略,必竟優化索引還是程序員或DBA去干比較合適。
9、排序後的合併次數
如果這個值在緩慢增張,建議適當增加(圖2)中的sort_buffer_size,建議每次增加512,但最大不要超過8192,如果這個值一直在瘋漲,增加sort_buffer_size也沒用,就放棄這個選項吧,這個鍋還是給程序開發者背。
10、鎖表次數
如果服務器CPU開銷不大的情況下,瘋狂鎖表,建議你將所有數據表轉換成innodb,記得轉換前備份。
11、優化方案
這個是根據內存大小給的一個推薦優化方案,僅是建議僅用於基礎參考值,還是要根據實據情況來調整每一個配置項。
注意:保存參數配置後不會立即生效,記得要重啟MySQL服務。
MySQL數據庫版本建議:
CPU/內存數據庫
1H/512M MySQL5.1
1H/1G MySQL5.1/5.5
2H/2G MySQL5.1/5.5
2H/4G MySQL5.5/5.6
4H/4G+ MySQL5.5/5.6/5.7
數據庫性能設置建議:
這裡的性能設置可以直接選擇寶塔面板自帶的優化方案,然後等站點運行一段時間後查看數據庫當前狀態,根據狀態報告來進行更細節的調試。
注意:此項設置需要保存多次才生效,同時保存多次後需要重啟一次數據庫!