Gần đây chúng tôi đã tách các tệp tempdb của chúng tôi sang một ổ SSD mới và đã bắt đầu thấy:
5348 lần xuất hiện của các yêu cầu I / O mất hơn 15 giây để hoàn thành trên tệp [T: \ tempdb \ tempdb4.ndf].
Chúng tôi có nhiều lần xuất hiện lỗi này. Chúng tôi không thấy lỗi khi tempdb trở lại trang chủ RAID 5 ban đầu. Tôi đã làm theo một hướng dẫn về SQLIO và tôi nghĩ rằng SSD nên nhanh hơn nhiều, khi thực hiện đọc / ghi ngẫu nhiên 8kb, so với các đĩa RAID 5 trước đó. Vậy tại sao chúng ta lại thấy những lỗi này?
Ngoài ra, bằng cách chứng minh thêm rằng không phải tất cả đều ổn, tệp bó chúng tôi chạy qua đêm (đó là khi các lỗi này xảy ra) mất 7 giờ. Phải mất 6,25 giờ trên các đĩa cũ.
Các đĩa ngồi trong một mảng gắn trực tiếp. RAID5 cho dữ liệu, RAID 10 cho nhật ký và khe cắm dự phòng mà chúng tôi đã sử dụng cho SSD. RAID 5 và SSD được định dạng cho kích thước khối 64kb. Nhật ký được đặt không chính xác thành kích thước khối 4KB (tôi biết - sẽ sửa khi tôi có cơ hội).
Đây là kết quả của SQLIO:
Ổ đĩa T (ssd)
Ios = 8KB ghi ngẫu nhiên, IOs / giây = 31847,48, MBs / giây = 248,8
Ios = 8KB đọc ngẫu nhiên, IOs / giây = 76391.66, MBs / giây = 596.8
Ổ đĩa S (RAID 5)
Ios = 8KB ghi ngẫu nhiên, IOs / giây = 2601.3, MBs / giây = 20.32
Ios = 8KB đọc ngẫu nhiên, IOs / giây = 3138,45, MBs / giây = 24,51
Đối với 64K đọc / ghi tuần tự, chúng giống nhau.
Tempdb được chia thành 4 tệp 1.5Gb (điều này giống nhau trước và sau khi di chuyển).
Máy chủ SQL 2012 được vá vào SP3.
Bạn có biết điều gì có thể gây ra tất cả các lỗi I / O này được SQL Server báo cáo không?
Nó có thể là một vấn đề trình điều khiển Array hoặc HBA? Liệu một đĩa đơn được thêm vào một khe dự phòng trên một mảng được gắn trực tiếp có cần cấu hình cẩn thận về bộ đệm không?