P22 - Giám sát hiệu năng SQL Server 2022 Với PRTG
PRTG P22 – Cách Giám sát SQL Server 2022 Performance và Disk Space với PRTG
Việc SQL Server đang “Running” không đồng nghĩa hệ thống đang khỏe mạnh. Trong môi trường production, sự suy giảm hiệu năng thường diễn ra âm thầm trước khi xảy ra downtime.
Trong bài viết này, bạn sẽ học cách Giám sát hiệu năng SQL Server 2022 với PRTG, tập trung vào:
Các performance counter quan trọng
Chỉ số phản ánh sức khỏe nội tại của SQL
Giám sát dung lượng disk chứa MDF, LDF và backup
Cấu hình cảnh báo thông minh
Đây là tầng giám sát nâng cao, giúp phát hiện sớm vấn đề trước khi hệ thống bị ảnh hưởng.
🧠 2#. SQL Performance
Sensor sử dụng: SSH Script Advanced
Chọn các counter quan trọng:
• Database size
• Transactions/sec
• Batch Requests/sec
• Buffer Cache Hit Ratio
• Page Life Expectancy (PLE)
• Lock Waits
• Deadlocks/sec
📌 Đây là sensor “brain” của hệ thống giám sát SQL.
Nó cho bạn biết SQL Server có đang chịu áp lực bộ nhớ, workload cao hoặc vấn đề locking hay không.
🛠 Step 1 – Tạo Script Giám Sát
Xác định đường dẫn của lệnh sqlcmd:
Lấy đường dẫn trả về và dán vào biến SQLCMD trong script bên dưới.
🔐 Step 2 – Re-assign quyền cho user prtg_sql
Tạo file script:
Nội dung Script
#!/bin/bash
SQLCMD="/opt/mssql-tools18/bin/sqlcmd"
USER="prtg_sql"
PASS="StrongPassword!"
SERVER="localhost"
RESULT=$($SQLCMD -S "$SERVER" -U "$USER" -P "$PASS" -C \
-h -1 -W -s "|" -Q "
SET NOCOUNT ON;
SELECT
/* Total DB Size (MB) – per current DB */
(SELECT SUM(size)*8/1024 FROM sys.database_files),
/* Transactions/sec (_Total) */
(SELECT cntr_value
FROM sys.dm_os_performance_counters
WHERE counter_name='Transactions/sec'
AND instance_name='_Total'),
/* Batch Requests/sec */
(SELECT SUM(cntr_value)
FROM sys.dm_os_performance_counters
WHERE counter_name='Batch Requests/sec'),
/* Buffer Cache Hit Ratio (%) */
(
SELECT
CAST(
100.0 *
MAX(CASE WHEN counter_name='Buffer cache hit ratio' THEN cntr_value END) /
NULLIF(MAX(CASE WHEN counter_name='Buffer cache hit ratio base' THEN cntr_value END),0)
AS DECIMAL(5,2))
FROM sys.dm_os_performance_counters
),
/* Page Life Expectancy – instance rỗng */
(SELECT cntr_value
FROM sys.dm_os_performance_counters
WHERE counter_name='Page life expectancy'
AND instance_name=''),
/* Lock Waits/sec */
(SELECT COALESCE(SUM(cntr_value),0)
FROM sys.dm_os_performance_counters
WHERE counter_name='Lock Waits/sec'),
/* Deadlocks/sec */
(SELECT COALESCE(SUM(cntr_value),0)
FROM sys.dm_os_performance_counters
WHERE counter_name='Number of Deadlocks/sec');
")
IFS='|' read DBSIZE TRANS BATCH BCHR PLE LOCK DEAD <<< "$RESULT"
echo "<prtg>"
echo "<result>
<channel>Total DB Size</channel>
<value>${DBSIZE:-0}</value>
<unit>MegaByte</unit>
</result>"
echo "<result>
<channel>Transactions</channel>
<value>${TRANS:-0}</value>
<unit>Count</unit>
<mode>Rate</mode>
</result>"
echo "<result>
<channel>Batch Requests</channel>
<value>${BATCH:-0}</value>
<unit>Count</unit>
<mode>Rate</mode>
</result>"
echo "<result>
<channel>Buffer Cache Hit</channel>
<value>${BCHR:-0}</value>
<unit>Percent</unit>
<float>1</float>
</result>"
echo "<result>
<channel>Page Life Expectancy</channel>
<value>${PLE:-0}</value>
<unit>Seconds</unit>
</result>"
echo "<result>
<channel>Lock Waits</channel>
<value>${LOCK:-0}</value>
<unit>Count</unit>
<mode>Rate</mode>
</result>"
echo "<result>
<channel>Deadlocks</channel>
<value>${DEAD:-0}</value>
<unit>Count</unit>
<mode>Rate</mode>
</result>"
echo "<text>SQL Performance OK</text>"
echo "</prtg>"🔧 Delegation and Enforcement
Cấp quyền thực thi:
Chạy kiểm tra:
Nếu XML output hiển thị đúng cấu trúc <prtg>...</prtg>, script đã sẵn sàng.
📡 Step 2 – Thêm Sensor trong PRTG
Thêm sensor mới:
Type: SSH Script Advanced
Script:
sql_perfomence.sh
PRTG sẽ tự động tạo các channel dựa trên XML output.
🚨 Step 3 – Cấu hình Alert Threshold
Không phải chỉ số nào cũng cần đặt threshold cứng.
Total DB Size (MB)
KHÔNG đặt threshold.
Dùng để theo dõi tăng trưởng dữ liệu theo thời gian.
Transactions/sec
KHÔNG đặt threshold.
Giá trị phụ thuộc workload, dùng để so sánh xu hướng.
Batch Requests/sec
KHÔNG đặt threshold.
Theo dõi mức độ xử lý truy vấn.
Buffer Cache Hit %
📌 SQL khỏe mạnh thường ≥ 98%
Nếu dưới 95% kéo dài, có thể đang thiếu RAM.
Page Life Expectancy (PLE)
PLE thấp cho thấy áp lực bộ nhớ.
Quan sát sự sụt giảm đột ngột thay vì giá trị cố định.
Lock Waits/sec
Giá trị cao có thể do blocking hoặc thiếu index.
Deadlocks/sec
Deadlock không phải lúc nào cũng lỗi nghiêm trọng.
Chỉ cảnh báo khi xảy ra liên tục.
💾 3#. Disk Capacity (Extremely Sensitive SQL)
SQL Server rất nhạy cảm với việc hết dung lượng disk.
Sensor: SSH Disk Free v2
Theo dõi các disk chứa:
Data (.mdf)
Log (.ldf)
Backup
Nếu disk đầy:
SQL có thể ngừng ghi log
Transaction thất bại
Hệ thống có thể dừng hoạt động
🛠 Step 1 – Thêm Sensor Disk
Thêm sensor SSH Disk Free v2 vào SQL Server.
Chọn đúng mount point chứa dữ liệu SQL.
🚨 Step 2 – Cấu hình cảnh báo dung lượng
Khuyến nghị:
Warning khi còn 20%
Critical khi còn 10%
Disk monitoring thường quan trọng hơn performance counter vì hết dung lượng sẽ gây lỗi ngay lập tức.
🎯 Vì sao cần Giám sát hiệu năng SQL Server?
Khi triển khai Giám sát hiệu năng SQL Server, bạn đang theo dõi:
Sức khỏe bộ nhớ
Áp lực workload
Tình trạng locking
Tài nguyên lưu trữ
Cách tiếp cận này giúp:
Phát hiện sớm suy giảm hiệu năng
Tránh downtime bất ngờ
Lập kế hoạch mở rộng tài nguyên
Ổn định môi trường production
🚀 Kết luận
Để triển khai Giám sát hiệu năng SQL Server 2022 với PRTG đúng chuẩn, bạn cần:
Performance counter quan trọng
Service monitoring
Threshold hợp lý
Disk capacity tracking
Mô hình này tạo thành kiến trúc giám sát đầy đủ:
Tầng dịch vụ
Tầng hiệu năng
Tầng lưu trữ
Với cấu hình này, hệ thống của bạn không chỉ “biết SQL còn chạy hay không”, mà còn biết SQL có đang thực sự khỏe mạnh hay đang tiến gần đến sự cố.
Tham khảo thêm bài viết cùng chủ đề
P3 – Giải Pháp Mạnh Mẽ Giám Sát IP WAN Với PRTG
P3 – Giải Pháp Mạnh Mẽ Giám Sát IP WAN Với PRTG PRTG – P3 Giám Sát Internet & WAN IP Với PRTG Network Monitor Việc theo dõi kết nối Internet là yếu tố sống còn trong hạ tầng doanh nghiệp. Khi đường truyền WAN gặp sự cố, các dịch...
Read MoreP2 – Bảo mật PRTG Hiệu Quả: Đổi Port PRTG & SSL
P2 – Bảo mật PRTG Hiệu Quả: Đổi Port PRTG & SSL PRTG – P2 Secure PRTG with SSL | Enable HTTPS & Change Default Port Bảo mật hệ thống giám sát không phải là tùy chọn — đó là yêu cầu bắt buộc. Trong bài viết này, chúng ta...
Read MoreP1 – Hướng Dẫn Cài Đặt PRTG Hoàn Chỉnh Windows 10
P1 – Hướng Dẫn Cài Đặt PRTG Hoàn Chỉnh Windows 10 🚀 Cài đặt PRTG trên Windows 10 – Initial Setup & Configuration (P1) Nếu bạn đang bắt đầu triển khai hệ thống giám sát hạ tầng, thì việc Cài đặt PRTG đúng cách là bước nền tảng cực kỳ...
Read More