資料庫索引對伺服器效能的影響

2022-04-05 06:57:27 字數 899 閱讀 6365

5月6日-5月15日期間因投票活動的開展,此次活動給**帶來了前所未有的訪問量,由於投票系統防作弊措施的不健全,造成了大量使用者使用切換ip刷票軟體,再加上惡意使用者時而對**傳送大量cc攻擊,**的硬體服務架構與應用程式的設計面臨了巨大的挑戰,**硬體服務架構總體表現比較良好,伺服器方面採用前端反向**伺服器+nginx(fastcgi)後端伺服器+資料庫伺服器,前端反向**伺服器快取了使用者訪問的靜態資源(、css樣式、通過後端伺服器偽靜態化而靜態化的html等),當使用者請求動態程式檔案或對資料庫操作時前端反向**才將該請求服務交給nginx(fastcgi)後端伺服器或資料庫伺服器。其中的反向**伺服器對後端伺服器偽靜化應用而生成靜態化的html檔案而減少了大量的資料庫查詢操作,提高了**整體的效能。但投票系統在開發時,開發人員因只著重其功能的實現而疏忽了應用程式與資料表的最佳設計方式,導致了**發生了不必要502badgateway錯誤。

經過對多個站點的訪問測試否定了前端反向**伺服器的問題。其502錯誤就是nginx與phpfastcgi並行執行時,nginx執行正常而phpfastcgi發生了假死,程序無法處理而導致的,還得檢視究竟是哪一問題造成fastcgi無法處理應用的;併發很高、cpu不夠、fastcgi程序數設定影響等,其實這一切都是phpfastcgi處理時所產生的,需拋開對nginx的懷疑。

進入後端伺服器,根據系統監控命令發現大量的php-cgi程序cpu占有率比值很高,再經過仔細排查,後端伺服器也不存在直接性影響問題,而進入資料庫伺服器發現mysql占用cpu資源也比較高,經過對mysql的監控,發現使用者大量的等待資料返回,sql語句存在效率問題,某欄位未加索引,造成了大量資料的查詢等待與寫入等待,導致了表鎖,伺服器cpu資源耗盡,從而資料庫伺服器無法正常返回資料與後端伺服器,造成後端伺服器php-cgi無法正常處理,對該字段增加索引後,後端伺服器與資料庫伺服器負載恢復正常,502錯誤也從此消失。

BIOS 對伺服器效能的影響

節能在降低能耗的同時也意味著效能的下降。下面介紹的是在 bios 這個層面涉及到的一些節能開關,比較具有通用性。1.turbo boost 跟超頻有關,詳細的請看這裡。2.c1e,c state hardwaresecrets 有一篇介紹 cx state 的文件,比 wiki 上的介紹的更詳細。3...

影響資料庫效能的幾個方面之伺服器硬體

cpu 主頻 核數 我們的應用是cpu密集型還是併發比較高的場景?注意 1.64位的cpu一定要工作在64位的伺服器版本下 2.mysql 不支援多cpu對同一sql 的併發處理 記憶體大小 資料 記憶體 資料庫傳統機器硬碟 最常見,使用最多,低,儲存空間大,讀寫較慢 讀取過程 1 移動磁頭到磁碟表...

遇到影響伺服器效能的cpuspeed 服務

最近碰到乙個很蛋痛的問題,我在公司的 上實現了乙個功能,然後基於這個測試,結果比對資料發現每天少三千多萬條,然後我各種優化,各種零碎部功能閹割,還是丟資料!之後,監控執行網絡卡 watch n 1 ifconfig eth2 發現網絡卡丟資料!之後把修改之前的程式拿上來執行,發現網絡卡還丟!之後檢視...