Bạn có ổ đĩa mới nhất cho máy chủ của bạn. Bạn xếp chồng lên nhau các-của-đỉnh RAM dòng trong hệ thống. Bạn chạy mã hiệu quả cho hệ thống của bạn. Tuy nhiên, những gì thông qua hệ thống của bạn có khả năng xử lý là, và có thể bạn thực sự tin tưởng vào khả năng được liệt kê bởi các công ty phần cứng?
Tại sao sử dụng SQLIO?
Nếu chúng ta muốn biết khả năng của các ổ đĩa của chúng tôi IO, SQLIO làm cho một công cụ tuyệt vời (như Cục Dự trữ Liên bang, chúng tôi sẽ được chạy "thử nghiệm căng thẳng" trên ổ đĩa của chúng tôi, không phải là hệ thống ngân hàng). Bạn có thể sử dụng SQLIO như một bổ sung cho máy chủ của bạn thiết lập để tìm thấy khả năng tối đa mà ổ đĩa của bạn có thể xử lý, mà sẽ giao tiếp hiệu quả của máy chủ của bạn thiết lập là.
Ví dụ, chúng ta hãy giả sử rằng chúng ta có ba ổ đĩa vào máy chủ của chúng tôi, một ổ đĩa F, G và ổ đĩa C. Nếu chúng ta có MDF của chúng tôi trên ổ đĩa F, LDF trên ổ đĩa G và hệ điều hành của chúng tôi trên ổ đĩa C của chúng tôi, chúng tôi có thể đánh giá xem bộ của chúng tôi lên là hiệu quả. Ví dụ, nếu tập tin MDF của chúng tôi là những bận rộn nhất về viết và đọc trên hệ điều hành của chúng tôi và LDF, chúng tôi muốn tập tin MDF của chúng tôi để được trên ổ đĩa có thể xử lý cao nhất thông qua đặt, nếu chúng ta đang hướng tới một máy chủ hiệu quả sắp xếp.
SQLIO giúp chúng ta xác định ổ đĩa sẽ tốt hơn cho bố trí máy chủ của chúng tôi. Sử dụng ví dụ trên với đồ thị (đại diện cho viết và đọc cho hệ điều hành, LDF và MDF), vì chúng ta đang tìm kiếm hiệu quả, chúng tôi sẽ đặt tập tin MDF của chúng tôi trên ổ đĩa nhanh nhất kể từ MDF của chúng tôi là những bận rộn nhất. Nếu phân tích SQLIO của chúng tôi cho thấy rằng F là ổ đĩa nhanh nhất của chúng tôi, chúng tôi sẽ đặt tập tin MDF của chúng tôi trên ổ F.
Tuyệt vời! Làm thế nào tôi có thể Có được SQLIO?
Microsoft cung cấp công cụ này tuyệt vời cho miễn phí (hiện đang có sẵn tại trang webhttp://www.microsoft.com/download/en/details.aspx?id=20163 ). Thật không may, liên kết của Microsoft có thể thay đổi thường xuyên, vì vậy nếu các liên kết ở trên không làm việc, bạn có thể Google "SQLIO" và xác định vị trí các công cụ từ trang web.
Làm thế nào để Thực hiện một thử nghiệm căng thẳng?
1. Chúng tôi sẽ cần phải sửa đổi các tập tin param.txt , xác định để SQLIO nơi để xác định vị trí các tập tin thử nghiệm. Khi bạn tải các tập tin param.txt (được tìm thấy trong thư mục SQLIO), bạn sẽ thấy một cái gì đó tương tự như:
Vì lợi ích của thử nghiệm của chúng tôi, nếu ổ đĩa chính của bạn là khác nhau, bạn sẽ muốn thay đổi vị trí của ổ đĩa. Ngoài ra, tùy thuộc vào lớn như thế nào bạn muốn kiểm tra tập tin của bạn được, bạn có thể thay đổi kích thước của tập tin (trong trường hợp này, 4096). Lưu ý rằng nếu bạn muốn kiểm tra nhiều ổ đĩa, bạn có thể làm như vậy (sao chép và dán mã dưới đây để tiết kiệm thời gian):
c: \ testfile.dat 2 0x0 4096 h: \ testfile.dat 2 0x0 4096 i: \ testfile.dat 2 0x0 4096 p: \ testfile.dat 2 0x0 4096
Trong ví dụ trên, chúng tôi sẽ kiểm tra ổ đĩa C, H, I và P.
2. Tạo ra một tập tin thực thi có tên SANtest.bat trong thư mục SQLIO của bạn (thường được tìm thấy trong Program Files), như bạn sẽ được chạy tập tin thực thi này thông qua dấu nhắc lệnh (hiển thị sau). Tập tin này có thể được tạo ra trong notepad và sẽ được tạo ra dựa trên những gì bạn đang tìm kiếm. Hãy ghi nhớ, tập tin này sẽ được các hướng dẫn để kiểm tra SQLIO trên ổ đĩa của bạn, dài danh sách các dòng trong tập tin này, thời gian nó sẽ mất.Tuy nhiên, một danh sách dài có nghĩa là kiểm tra là toàn diện hơn. Tùy thuộc vào những gì bạn đang tìm kiếm, bạn có thể muốn có một tập tin thực thi dài hoặc một tập tin thực thi ngắn. Dưới đây, tôi thấy một ví dụ về cách mỗi dòng sẽ tìm trong tập tin SANtest.bat của bạn, các thông số quan trọng, tôi sẽ bao gồm:
| Biến | Những gì các biến Thực hiện |
| -KW-KR | Này quy định các thủ tục. W sẽ viết và R sẽ đọc.Nếu đĩa của bạn là chỉ đọc, bạn sẽ chỉ làm R. |
| -Frandom hoặc-fsequential | Này các quốc gia có các IO sẽ được tuần tự hoặc ngẫu nhiên. |
| -T2 hoặc-T4,-T8, T16-... | Chủ đề sẽ được chạy cùng một lúc. |
| -O1 hoặc-O2, O4, o8 ... | Số lượng yêu cầu xuất sắc. |
| -S90 hoặc-S60, S120, ... | Bao lâu thử nghiệm sẽ mất trong vài giây. Tôi đã nhìn thấy các đề xuất mà nằm trong khoảng 90-120. |
| -B64 | 64Kb, mà tùy thuộc vào hệ thống, bạn có thể muốn điều này là 4KB, 8KB, hoặc vân vân . Điều này liên quan đến một thử nghiệm của SQL server đó sẽ là 8Kb và 64Kb. |
| -DC | Ổ đĩa thư cho thử nghiệm. Lưu ý rằng nếu ổ đĩa của bạn là F, bạn sẽ muốn thay đổi giá trị này đến dF (hoặc-dG cho một ổ đĩa G mà bạn muốn kiểm tra). |
Sau khi chạy SQLIO nhiều lần, chìa khóa cho một tập tin thực thi là tổ chức. Tôi đã tìm thấy mã dưới đây để là hữu ích nhất cho một thử nghiệm nhanh:
SQLIO-KR-frandom-T8-O2-s90-B64-DC-BH Testfile.dat
SQLIO-KR-frandom-T8-O4-s90-B64-DC-BH Testfile.dat
SQLIO-KR-frandom-T8-o8-s90-B64-DC-BH Testfile.dat
SQLIO-KR-frandom-T8-Ø16-s90-B64-DC-BH Testfile.dat
SQLIO-KR-frandom-T8-Ø32-s90-B64-DC-BH Testfile.dat
SQLIO-KR-frandom-T8-o64-s90-B64-DC-BH Testfile.dat
SQLIO-KR-frandom-T8-o128-s90-B64-DC-BH Testfile.dat
SQLIO-kW-frandom-T8-O2-s90-B64-DC-BH Testfile.dat
SQLIO-kW-frandom-T8-O4-s90-B64-DC-BH Testfile.dat
SQLIO-kW-frandom-T8-o8-s90-B64-DC-BH Testfile.dat
SQLIO-kW-frandom-T8-Ø16-s90-B64-DC-BH Testfile.dat
SQLIO-kW-frandom-T8-Ø32-s90-B64-DC-BH Testfile.dat
SQLIO-kW-frandom-T8-o64-s90-B64-DC-BH Testfile.dat
SQLIO-kW-frandom-T8-o128-s90-B64-DC-BH Testfile.dat
SQLIO-KR-fsequential-T8-O2-s90-B64-DC-BH Testfile.dat
SQLIO-KR-fsequential-T8-O4-s90-B64-DC-BH Testfile.dat
SQLIO-KR-fsequential-T8-o8-s90-B64-DC-BH Testfile.dat
SQLIO-KR-fsequential-T8-Ø16-s90-B64-DC-BH Testfile.dat
SQLIO-KR-fsequential-T8-Ø32-s90-B64-DC-BH Testfile.dat
SQLIO-KR-fsequential-T8-o64-s90-B64-DC-BH Testfile.dat
SQLIO-KR-fsequential-T8-o128-s90-B64-DC-BH Testfile.dat
SQLIO-kW-fsequential-T8-O2-s90-B64-DC-BH Testfile.dat
SQLIO-kW-fsequential-T8-O4-s90-B64-DC-BH Testfile.dat
SQLIO-kW-fsequential-T8-o8-s90-B64-DC-BH Testfile.dat
SQLIO-kW-fsequential-T8-Ø16-s90-B64-DC-BH Testfile.dat
SQLIO-kW-fsequential-T8-Ø32-s90-B64-DC-BH Testfile.dat
SQLIO-kW-fsequential-T8-o64-s90-B64-DC-BH Testfile.dat
SQLIO-kW-fsequential-T8-o128-s90-B64-DC-BH Testfile.dat
Đây cũng là mã chúng tôi sẽ được sử dụng để kiểm tra một ổ đĩa sau trong bài viết này để thấy làm thế nào để giải thích kết quả (bạn có thể sao chép và dán một bản demo thử nghiệm trên hệ thống của bạn). Tùy thuộc vào những gì bạn muốn ổ đĩa của bạn để làm, bạn có thể muốn một mã toàn diện hơn với ít nhiều chủ đề và nhiều hơn hoặc ít nổi bật yêu cầu.
3. Thời gian chạy thử nghiệm của chúng tôi. Các ảnh chụp màn hình dưới đây cho thấy quá trình này. Bạn sẽ đi đến dấu nhắc lệnh, tìm vị trí của SQLIO tập tin, và chạy thử nghiệm bằng cách gõ santest.bat> results.txt và nhấn Enter.
Quá trình này sẽ tiêu thụ một thời gian, nhưng quá trình xây dựng và chạy thử nghiệm đã hoàn tất. Bước cuối cùng là diễn giải kết quả.
Làm thế nào để giải thích kết quả
Giải thích của bạn sẽ phụ thuộc vào những gì bạn muốn từ hệ thống của bạn. Nhớ lại, rằng nếu bạn có một hệ thống hay máy chủ chỉ được đọc, bạn muốn chạy chỉ đọc kiểm tra. Bạn sẽ không lo lắng về hệ thống của bạn hoạt động không tốt với viết, nếu nó chỉ đọc (và bạn sẽ không cần phải chạy một bài kiểm tra viết).
Sau khi bạn thực hiện các kiểm tra, tập tin results.txt của bạn sẽ trông giống như sau khi bạn tải nó:
Lưu ý rằng mỗi qua kiểm tra hàng loạt tập tin của chúng tôi sản xuất một khối thông tin được sản xuất trong các tập tin kết quả (thể hiện trong các văn bản phác thảo màu xanh bên dưới này) và nếu chúng tôi quan tâm đến năng lực, chúng tôi muốn nhìn vào IOS mỗi giây và MBS mỗi giây (được thể hiện trong các văn bản nêu đỏ này dưới đây):
Các tập tin kết quả liệt kê các IOS mỗi giây và MBS mỗi giây (thể hiện trong hình vuông màu đỏ nêu trên này).
Sự nổi bật IO (s) (một thể loại được liệt kê trong bốn bảng dưới đây này) được xác định bởi số lượng các chủ đề và yêu cầu xuất sắc trên hàng loạt tập tin thử nghiệm (SANTest.bat). Ví dụ, nếu bạn có hai chủ đề (-t2) và tám yêu cầu kỳ diệu (-o8), bạn sẽ có mười sáu (16) IOS.Từ tập tin thử nghiệm hiển thị ở trên này, bạn có thể thấy rằng số lượng chủ đề của chúng tôi vẫn còn ở tám (-T8) trong suốt các kiểm tra, trong khi yêu cầu xuất sắc bắt đầu từ hai (-O2) qua 128 (-o128).
Từ các kết quả, chúng ta có thể nhập thông tin của chúng tôi vào các bảng. Lưu ý, bạn cũng có thể tạo ra một kịch bản SQL hoặc PowerShell và nó đã tạo ra kết quả trong một trong hai cơ sở dữ liệu trong SQL hoặc tài liệu Excel. Vì lợi ích của bài viết này, chúng tôi sẽ chỉ hiển thị kết quả ngắn gọn và làm thế nào để giải thích này (mặc dù, cho biết thêm thông tin, xem xét các tài liệu tham khảo ở cuối).
Ổ đĩa này đạt công suất đọc ngẫu nhiên của nó vào khoảng 250-260 IOS mỗi giây và 15 - 16 MB mỗi giây.
Ổ đĩa thử đạt được là khả năng ngẫu nhiên viết vào khoảng 180-190 IOS mỗi giây và 10 - 11 MB mỗi giây.
Ổ đĩa thử nghiệm đạt công suất tuần tự đọc ở khoảng 1600 IOS mỗi giây và 90 - 100 MB mỗi giây.
Ổ đĩa thử nghiệm đạt công suất tuần tự đọc ở khoảng 1.500 IOS mỗi giây và 90 - 100 MB mỗi giây.
Trong khi thử nghiệm này cho chúng ta thấy kết quả của một ổ đĩa, nếu chúng ta có nhiều ổ đĩa chúng ta có thể bắt đầu phân tích các ổ đĩa có thể xử lý một số tải tốt hơn. Nếu chúng tôi đã có một ổ đĩa, trong đó xử lý con số thấp hơn nhiều so với ổ đĩa thử nghiệm liệt kê ở trên này, chúng tôi sẽ không đặt hệ thống bận rộn nhất của chúng tôi trên đó. Tương tự như vậy, nếu chúng ta có một ổ đĩa đó xử lý thông qua đặt nhanh hơn nhiều so với ổ đĩa thử nghiệm trên này, chúng tôi muốn hệ thống của chúng tôi bận rộn nhất trên đó. SQLIO giúp chúng ta xác định các ổ đĩa của chúng tôi có thể xử lý, để chúng ta có thể xây dựng một hệ thống tối ưu hóa hiệu suất.
Một số điều hữu ích khác trên SQLIO
Kevin Kline cung cấp một số thông tin tuyệt vời, cũng như một số mã SQL mà bạn có thể sử dụng để phân tích kết quả của bạn.
Andy Novick cho thấy cách giải quyết vấn đề với SQLIO, và làm thế nào để giải thích các kết quả được cung cấp bởi công cụ này hữu ích.
Jonathan Kehayias cung cấp một kịch bản Powershell rất hữu ích mà có được các dữ liệu từ các kết quả SQLIO và bơm vào một bảng tính Excel để phân tích.






