二 伺服器優化(3)伺服器端優化措施

2021-09-05 04:29:26 字數 1897 閱讀 2581

一、硬體

如果條件允許,則盡可能使用效能更好的硬體裝置。

1、cpu

cpu 的選型原則,一般先看主頻的高低,然後考慮二級快取的大小。

其次,注意 windows 的電源選項。

2、記憶體

原則上,記憶體越多越好。

3、磁碟

磁碟是資料庫系統的最大瓶頸。建議優先考慮 spindle ,再考慮 raid。後文將有詳細說明。

4、網絡卡

網絡卡選型時往往將頻寬作為第一要素。實際上更應該注意到,降低網路延遲不僅僅在於提高頻寬,高效能的低延遲網絡卡有助於提高網路效能。

intel 是這樣解釋網路延遲的:

根據intel發布的案例,紐約證交所資料骨幹網使用萬兆乙太網rdma技術,可實現每秒18~46微秒的延遲,平均延遲為26微秒。

二、server core

server core(伺服器核心)是windows server 2008及後續版本提供的功能。它允許在伺服器上安裝極小的安裝選項,從而為特定的服務提供乙個可執行的、功能有限的、低維護的伺服器環境,能有效地提高安全性和降低管理複雜度。microsoft表示,server core可以實現最大程度的穩定性。關於 windows server core 的安裝,請參考《windows 2008 伺服器核心(server core)》

為減少gui 對作業系統和應用程式的影響,提公升效能與穩定性,可以考慮將 sql server 安裝在 server core 上。

sql server 2012 的新特性之一,就是可以安裝在 server core上。sql server 2012 之前的版本不支援 server core(實際上是windows server 2008不支援安裝.net framework)。

三、消除應用軟體的影響

一般建議將某台伺服器作為專門的資料庫伺服器,並且盡可能避免在這台伺服器上安裝其它應用軟體。

我在實踐中曾經遇到以下3類軟體對資料庫產生嚴重影響。

1、防病毒軟體

其中乙個案例,資料庫反應非常慢,感覺像deadlock。最後竟然發生了藍屏。經過對藍屏dump檔案進行分析,19#處理器當時有12380個work item在等待,而某防病毒軟體的程序執行已超過5分鐘仍處於pending狀態(正常情況下應該是各個程序輪流使用處理器),導致阻塞。最後聯絡該軟體的廠家,得知廠家已經建議不要在伺服器上安裝執行此程序。

2、第三方的備份軟體

其中乙個案例,發現sql server效能持續下降的原因是記憶體不足。根據收集到的日誌發現此問題的 tag: ddk,總共 200mb 左右的非分頁記憶體,ddk 中占用了 167mb。通過命令 findstr /l /m ddk c:\windows\system32\drivers\*.sys ,找到 4 個驅動程式。其中乙個為第三方的備份軟體,停用該軟體後恢復正常。

3、第三方的群集軟體

由於 microsoft cluster server(mscs)必須安裝在 windows server 的 enterprise edition,因此有些客戶使用了第三方的群集軟體。

其中乙個案例,經過監視 windows 計數器,發現 sql server 在訪問磁碟時,磁碟i/o的讀寫速度被鎖定在 8kb/s。

四、虛擬化

對於資料庫伺服器而言,如果將資料庫伺服器進行虛擬化,應當注意資源(記憶體、cpu、磁碟i/o、網絡卡等)的競爭。

其中最重要的是記憶體。vmware 是這樣解釋記憶體的:

或伺服器的優化措施包括硬體、軟體、作業系統、虛擬化各方面的優化。

伺服器優化服務

linux 1 開啟linux防火牆 2 linux關閉非必要埠 3 linux許可權設定 4 linux登入日誌和操作日誌設定 5 linux生成登入金鑰和實現金鑰登入伺服器 windows 1 windows修復安全漏洞補丁安裝 2 windows關閉非必要埠 3 windows伺服器許可權配置...

伺服器端渲染和首屏優化

什麼是伺服器端渲染 服務端渲染 ssr 面向母嬰電商平台的前端設計與效能研究 楊玉雪,浙江理工大學 非公開網路資源 關於首屏優化 一 概念 服務端渲染 ssr server side render 將元件或頁面通過伺服器生成html字串,再傳送到瀏覽器,最後將靜態標記 混合 為客戶端上完全互動的應用...

socket伺服器端

伺服器 include winsock2.h include string.h include stdio.h include time.h include stdarg.h include stdlib.h pragma comment lib,ws2 32 void errexit const ...