Ok, cho bất cứ ai quan tâm,
Chúng tôi đã giải quyết vấn đề trong Câu hỏi vài tháng trước chỉ bằng cách cài đặt ổ SSD gắn trực tiếp vào mỗi 3 máy chủ và di chuyển dữ liệu DB và tệp nhật ký từ SAN sang các ổ SSD đó
Ở đây tóm tắt về những gì tôi đã làm để nghiên cứu về vấn đề này (sử dụng các đề xuất từ tất cả các bài đăng câu hỏi này), trước khi chúng tôi quyết định cài đặt ổ SSD:
1) bắt đầu thu thập bộ đếm PerfMon cho các ổ đĩa sau tại cả 3 máy chủ:
Disk F:
là đĩa logic dựa trên SAN, chứa tệp dữ liệu MDF
Disk I:
là đĩa logic dựa trên SAN, chứa tệp nhật ký LDF
Disk T:
được gắn trực tiếp SSD, chỉ dành riêng cho tempDB
Hình dưới đây là giá trị trung bình được thu thập trong khoảng thời gian 2 tuần
Disk I: (LDF)
có IO nhỏ như vậy và Độ trễ rất thấp, vì vậy Đĩa I: có thể bị bỏ qua
Bạn có thể thấy rằng Disk T: (TempDB)
IO có lớn hơn so với Disk F: (MDF)
và nó có Độ trễ tốt hơn nhiều cùng một lúc - 0 ms
Rõ ràng có điều gì đó không ổn với Đĩa F: nơi chứa các tệp dữ liệu, nó có Độ trễ cao và Hàng đợi ghi đĩa trung bình, mặc dù IO thấp
2) Đã kiểm tra độ trễ cho cơ sở dữ liệu cá nhân bằng cách sử dụng truy vấn từ trang web này
https://www.brentozar.com/blitz/slow-st Storage-read-writes /
Rất ít cơ sở dữ liệu hoạt động trên máy chủ Chính có độ trễ đọc 150-250 ms và độ trễ ghi 150-450 ms
Điều thú vị, các tệp cơ sở dữ liệu chính và msdb có độ trễ đọc lên đến 90 ms đáng ngờ với kích thước nhỏ của dữ liệu và IO thấp - một dấu hiệu khác có gì đó không ổn với SAN
3) Không có thời gian cụ thể
Trong đó các thông báo "SQL Server đã gặp phải sự cố ..." xuất hiện
Không có bảo trì hoặc đĩa ETL nặng chạy khi các thông báo đó được ghi lại
4) Trình xem sự kiện Windows
Không hiển thị bất kỳ mục nào khác có thể gợi ý vấn đề, ngoại trừ "Máy chủ SQL đã gặp phải sự cố ..."
5) Bắt đầu kiểm tra 10 truy vấn hàng đầu
Từ sp_BlitzCache (cpu, đọc, v.v.) và tối ưu hóa khi có thể
Không có truy vấn nặng siêu IO nào có thể gây ra hàng tấn dữ liệu và ảnh hưởng đến việc lưu trữ, mặc dù
Lập chỉ mục trong cơ sở dữ liệu vẫn ổn, tôi vẫn duy trì
6) Chúng tôi không có đội SAN
Chúng tôi chỉ có 1 sysadmin giúp tìm
đường dẫn mạng tới SAN - nó được nhân lên, mỗi máy chủ có 3 cáp mạng dẫn đến chuyển mạch và sau đó đến SAN và được cho là 1 Gigabyte / giây
7) Không có kết quả CrystalDiskMark
Hoặc bất kỳ kết quả kiểm tra điểm chuẩn nào khác từ khi máy chủ được thiết lập, vì vậy tôi không biết tốc độ sẽ là bao nhiêu và không thể đo điểm chuẩn vào thời điểm này để xem tốc độ hiện tại là gì, vì nó sẽ ảnh hưởng đến Sản xuất
8) Thiết lập phiên Sự kiện mở rộng về sự kiện điểm kiểm tra cho cơ sở dữ liệu được đề cập
Phiên XE đã giúp phát hiện ra rằng trong các thông báo "Máy chủ SQL đã gặp sự cố ...", điểm kiểm tra xảy ra rất chậm (tối đa 90 giây)
9) Nhật ký lỗi máy chủ SQL
Chứa các mục "FlushCache" "Saturation"
Những mục này được cho là hiển thị khi thời gian điểm kiểm tra cho cơ sở dữ liệu đã cho vượt quá cài đặt khoảng thời gian phục hồi
Chi tiết cho thấy lượng dữ liệu mà trạm kiểm soát đang cố gắng xóa là nhỏ và mất nhiều thời gian để hoàn thành và tốc độ tổng thể là khoảng 0,25 MB / giây ... kỳ lạ
10) Cuối cùng, hình ảnh này hiển thị biểu đồ xử lý sự cố lưu trữ:
Dường như chúng ta chỉ có một "Sự cố phần cứng: - Làm việc với quản trị viên hệ thống / nhà cung cấp phần cứng để khắc phục mọi cấu hình sai của SAN, trình điều khiển cũ / bị lỗi, bộ điều khiển, chương trình cơ sở, v.v."
Trong một câu hỏi khác "Điểm kiểm tra chậm ..." Điểm kiểm tra chậm và cảnh báo I / O 15 giây trên bộ lưu trữ flash
Sean có danh sách rất hay về những mục phải kiểm tra ở cấp độ phần cứng và phần mềm để khắc phục sự cố
Sysadmin của chúng tôi không thể kiểm tra tất cả mọi thứ từ danh sách, vì vậy chúng tôi chỉ đơn giản chọn cách ném một số phần cứng vào vấn đề này - nó hoàn toàn không tốn kém
Nghị quyết:
Chúng tôi đã đặt mua ổ SSD 1 TB và cài đặt trực tiếp vào máy chủ
Vì chúng tôi có Nhóm sẵn có, đã di chuyển các tệp dữ liệu DB từ SAN sang SSD trên các bản sao thứ cấp, sau đó không thành công và di chuyển các tệp trên bản chính cũ Điều này cho phép tổng thời gian chết tối thiểu - dưới 1 phút
Giờ đây, mỗi máy chủ đều có bản sao dữ liệu DB cục bộ và sao lưu toàn bộ / diff / log được thực hiện cho SAN đã đề cập
Không còn thông báo "SQL Server nào gặp phải ..." trong nhật ký Windows Event Viewer và hiệu suất sao lưu, kiểm tra tính toàn vẹn, xây dựng lại chỉ mục, truy vấn, vv đã tăng đáng kể
Hiệu suất về độ trễ IO đã được cải thiện bao nhiêu kể từ khi chúng tôi di chuyển các tệp DB sang SSD?
Để đánh giá tác động, hiệu suất được sử dụng Windows Performance Monitor ghi lại 2 tuần trước khi di chuyển và 4 tuần sau khi di chuyển:
Ngoài ra bên dưới là so sánh thống kê độ trễ của mức DB (được sử dụng thống kê tệp ảo đã bắt của SQL Server trước và sau khi di chuyển)
Tóm lược
Di chuyển từ SAN sang SSD cục bộ gắn trực tiếp là hoàn toàn xứng đáng
Nó có tác động lớn đến độ trễ lưu trữ và trung bình cải thiện hơn 90% (đặc biệt là các hoạt động VIẾT) và chúng tôi không còn tăng đột biến 20-50 giây tại IO nữa
Việc chuyển sang SSD cục bộ đã giải quyết không chỉ các vấn đề về hiệu suất lưu trữ mà còn về an toàn dữ liệu mà tôi lo ngại (nếu SAN thất bại, cả 3 máy chủ đều mất dữ liệu cùng một lúc)