sql server服务器 性能,初涉SQL Server性能问题(1/4):服务器概况
當(dāng)你作為DBA時(shí),很多人會(huì)向你抱怨:“這個(gè)程序數(shù)據(jù)加載和蝸牛一樣,你看看是不是服務(wù)器出問(wèn)題了?”造成這個(gè)問(wèn)題的原因有很多??赡苁浅绦驊?yīng)用服務(wù)器問(wèn)題,網(wǎng)絡(luò)問(wèn)題,程序?qū)崿F(xiàn)方式問(wèn)題,數(shù)據(jù)庫(kù)服務(wù)器負(fù)荷過(guò)重。不管是哪個(gè)問(wèn)題,數(shù)據(jù)庫(kù)總是第一個(gè)被抱怨的。我們DBA的職責(zé)就是找出問(wèn)題所在,并解決它們。
問(wèn)題解決第一步,診斷分析:
SELECT
parent_node_id AS Node_Id,
COUNT(*) AS [No.of CPU In the NUMA],
SUM(COUNT(*)) OVER() AS [Total No. of CPU],
SUM(runnable_tasks_count ) AS [Runnable Task Count],
SUM(pending_disk_io_count) AS [Pending disk I/O count],
SUM(work_queue_count) AS [Work queue count]
FROM sys.dm_os_schedulers WHERE status='VISIBLE ONLINE' GROUP BY parent_node_id
返回結(jié)果說(shuō)明:
如果返回的是一條記錄,說(shuō)明服務(wù)器不支持NUMA架構(gòu),否則記錄數(shù)就是NUMA架構(gòu)的節(jié)點(diǎn)數(shù)(NUMA:非均勻訪存模型)。
Node_id:NUMA節(jié)點(diǎn)id。
No.of CPU in the NUMA:分配給NUMA節(jié)點(diǎn)的CPU數(shù),或調(diào)度數(shù)(?number of schedulers)。
Total No. of CPU:服務(wù)器上可用CPU總數(shù)。
Runnable Task Count:在可運(yùn)行隊(duì)列里,等待被重現(xiàn)調(diào)度的,用于分配任務(wù)(tasks)的工作者(workers)數(shù)。即,可運(yùn)行隊(duì)列里請(qǐng)求數(shù)。
Pending disk I/O count:等待被完成的等待IO數(shù)。每個(gè)調(diào)度都有一個(gè)等待IO清單,用于判斷它們?cè)谏舷挛那袚Q時(shí)是否完成。當(dāng)請(qǐng)求被插入時(shí),這個(gè)數(shù)字會(huì)增加。請(qǐng)求完成后,數(shù)字會(huì)減少。
Work queue count:等待隊(duì)列里的任務(wù)數(shù)。這些任務(wù)等待工作者拿走。
我會(huì)把這個(gè)腳本的輸出結(jié)果存到一張表,并設(shè)置為計(jì)劃任務(wù)每10分鐘運(yùn)行一次,收集運(yùn)行2天。這樣我們對(duì)服務(wù)器的運(yùn)行狀況就有了基本的了解。在我測(cè)試的服務(wù)器上,當(dāng)Runnable Task Count一直在10的時(shí)候,用戶就是抱怨服務(wù)器慢!正常情況,每個(gè)節(jié)點(diǎn)的這個(gè)數(shù)字應(yīng)該低于10。這就給了我們當(dāng)前系統(tǒng)運(yùn)行的大致情況。如果這一步的輸出結(jié)果是正常的,我們就可以排除數(shù)據(jù)庫(kù)服務(wù)器的問(wèn)題了,響應(yīng)慢的問(wèn)題可能是我們不能控制的阻塞造成的,或者只是部分會(huì)話響應(yīng)慢,而不是整個(gè)服務(wù)器慢。
附圖2張,幫助大家理解任務(wù)(tasks)、工作者(works)、調(diào)度(schedulers)之間的關(guān)系。
對(duì)于每個(gè)CPU,SQLSERVER都會(huì)有一個(gè)scheduler與之對(duì)應(yīng)。在每個(gè)scheduler里,會(huì)有若干個(gè)worker,對(duì)應(yīng)于每個(gè)線程。在客戶端發(fā)過(guò)來(lái)請(qǐng)求之后,SQL會(huì)將其分解成一個(gè)或多個(gè)task。根據(jù)每個(gè)scheduler的繁忙程度,task會(huì)被分配到某個(gè)scheduler上。如果scheduler里有空閑的worker,task就會(huì)被分配到某個(gè)worker上。如果沒(méi)有,scheduler會(huì)創(chuàng)建新的worker,供task使用。如果scheduler里的worker已經(jīng)到了他的上限值,而他們都有task要運(yùn)行,那么新的task只好進(jìn)入等待worker的狀態(tài)。
參考文章:
初涉SQL Server性能問(wèn)題(4/4):列出最耗資源的會(huì)話
在上3篇文章里,我們討論了列出反映服務(wù)器當(dāng)前狀態(tài)的不同查詢. 初涉SQL Server性能問(wèn)題(1/4):服務(wù)器概況 初涉SQL Server性能問(wèn)題(2/4):列出等待資源的會(huì)話 初涉SQL Ser ...
初涉SQL Server性能問(wèn)題(2/4):列出等待資源的會(huì)話
在初涉SQL Server性能問(wèn)題(1/4)里,我們知道了如何快速檢查服務(wù)器實(shí)例上正運(yùn)行的任務(wù)數(shù)和IO等待的任務(wù)數(shù).這個(gè)是輕量級(jí)的腳本,不會(huì)給服務(wù)器造成任何壓力,即使服務(wù)器在高負(fù)荷下,也可以正常獲得結(jié) ...
初涉SQL Server性能問(wèn)題(3/4):列出阻塞的會(huì)話
在 初涉SQL Server性能問(wèn)題(2/4)里,我們討論了列出等待資源或正運(yùn)行的會(huì)話腳本.這篇文章我們會(huì)看看如何列出包含具體信息的話阻塞會(huì)話清單. /************************ ...
SQL Server 無(wú)法連接到服務(wù)器。SQL Server 復(fù)制需要有實(shí)際的服務(wù)器名稱才能連接到服務(wù)器。請(qǐng)指定實(shí)際的服務(wù)器名稱。
異常處理匯總-數(shù)據(jù)庫(kù)系列 ?http://www.cnblogs.com/dunitian/p/4522990.html SQL性能優(yōu)化匯總篇:http://www.cnblogs.com/dunit ...
SQL Server 性能優(yōu)化(一)——簡(jiǎn)介
原文:SQL Server 性能優(yōu)化(一)--簡(jiǎn)介 一.性能優(yōu)化的理由: 聽(tīng)起來(lái)有點(diǎn)多余,但是還是詳細(xì)說(shuō)一下: 1.節(jié)省成本:這里的成本不一定是錢(qián),但是基本上可以變相認(rèn)為是節(jié)省錢(qián).性能上去了,本來(lái)要投 ...
影響Sql server性能的因素
目前本人在看 ,以下內(nèi)容是本人看書(shū)筆記 數(shù)據(jù)庫(kù)性能取決于各方面綜合因素: 硬件,操作系統(tǒng),軟件 硬件:內(nèi)存,CPU,磁盤(pán) 當(dāng)服務(wù)器的物理內(nèi)存不足時(shí),會(huì)產(chǎn) ...
SQL Server 性能優(yōu)化詳解
故事開(kāi)篇:你和你的團(tuán)隊(duì)經(jīng)過(guò)不懈努力,終于使網(wǎng)站成功上線,剛開(kāi)始時(shí),注冊(cè)用戶較少,網(wǎng)站性能表現(xiàn)不錯(cuò),但隨著注冊(cè)用戶的增多,訪問(wèn)速度開(kāi)始變慢,一些用戶開(kāi)始發(fā)來(lái)郵件表示抗議,事情變得越來(lái)越糟,為了留住用戶, ...
SQL SERVER性能優(yōu)化綜述
SQL SERVER性能優(yōu)化綜述 一個(gè)系統(tǒng)的性能的提高,不單單是試運(yùn)行或者維護(hù)階段的性能調(diào)優(yōu)的任務(wù),也不單單是開(kāi)發(fā)階段的事情,而是在整個(gè)軟件生命周期都需要注意,進(jìn)行有效工作才能達(dá)到的.所以我希望按照軟 ...
[轉(zhuǎn)]SQL Server 性能調(diào)優(yōu)(內(nèi)存)
存儲(chǔ)引擎自調(diào)整 sql server 是如何分配內(nèi)存的 32bit地址空間的限制 用戶模式vas分配和virtualalloc 非boffer pool 分配內(nèi)存(保留內(nèi)存) VAS調(diào)整 AWE ...
隨機(jī)推薦
iPhone 6/plus iOS Safari fieldset border 邊框消失
問(wèn)題:iPhone6 plus 手機(jī)瀏覽網(wǎng)頁(yè),fieldset border 邊框消失. 示例代碼:
div與>;div區(qū)別小結(jié)
兩者之間的區(qū)別:例如div span得到的是div下所有的span元素,而div>span則是取得的div下第一級(jí)的span元素. 示例代碼如下: & ...
牢記!SQL Server數(shù)據(jù)庫(kù)開(kāi)發(fā)的二十一條注意點(diǎn)
如果你正在負(fù)責(zé)一個(gè)基于SQL Server的項(xiàng)目,或者你剛剛接觸SQL? Server,你都有可能要面臨一些數(shù)據(jù)庫(kù)性能的問(wèn)題,這篇文章會(huì)為你提供一些有用的指導(dǎo)(其中大多數(shù)也可以用于其它的DBMS). ...
談?wù)刦inal, finally, finalize的區(qū)別
final?修飾符(關(guān)鍵字)如果一個(gè)類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承.因此一個(gè)類不能既被聲明為 abstract的,又被聲明為final的.將變量或方法聲明為fi ...
peewee 事物 回滾
peewee 事物 回滾 #!/usr/bin/env python # coding=utf-8 from peewee import * db = MySQLDatabase(host='123. ...
MongoDB 的 upsert
MongoDB?的update 方法的三個(gè)參數(shù)是upsert,這個(gè)參數(shù)是個(gè)布爾類型,默認(rèn)是false.當(dāng)它為true的時(shí)候,update方法會(huì)首先查找與第一個(gè)參數(shù)匹配的記錄,在用第二個(gè)參數(shù)更新之,如果 ...
深入淺出的webpack構(gòu)建工具---webpack基本配置(一)
深入淺出的webpack構(gòu)建工具---webpack基本配置(一) 閱讀目錄 一:webpack入門(mén)構(gòu)建: 1. 安裝webpack到全局 2. 安裝webpack到本項(xiàng)目. 3. 如何使用webpa ...
【Java并發(fā)核心七】計(jì)劃任務(wù)ScheduleExecutorService
Java中定時(shí)任務(wù)Timer工具類提供了計(jì)劃任務(wù)的實(shí)現(xiàn),但是Timer工具類是以隊(duì)列的方式來(lái)管理線程的,并不是以線程池的方式,這樣在高并發(fā)的情況下,運(yùn)行效率會(huì)有點(diǎn)低. ScheduleExecutor ...
總結(jié)
以上是生活随笔為你收集整理的sql server服务器 性能,初涉SQL Server性能问题(1/4):服务器概况的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《大前端进阶 Node.js》系列 必知
- 下一篇: C++---暂时的休憩