Tôi đã nói về tầm quan trọng của hiệu suất thông lượng tuần tự cho SQL Server trong một thời gian khá dài. Thông lượng tuần tự cực kỳ quan trọng đối với nhiều hoạt động phổ biến trong SQL Server, bao gồm:
- Sao lưu và khôi phục toàn bộ cơ sở dữ liệu
- Công việc tạo và duy trì chỉ mục
- Khởi tạo ảnh chụp nhanh nhân rộng và đăng ký
- Khởi tạo các bản sao AlwaysOn AG
- Khởi tạo nhân bản cơ sở dữ liệu
- Khởi tạo nhật ký vận chuyển thứ cấp
- Khối lượng công việc truy vấn kho dữ liệu quan hệ
- Các hoạt động ETL trong kho dữ liệu quan hệ
Mặc dù tầm quan trọng của thông lượng tuần tự đối với SQL Server, tôi vẫn thấy nhiều người chỉ tập trung vào về hiệu suất và độ trễ I / O ngẫu nhiên, trong khi phần lớn bỏ qua hiệu suất thông lượng tuần tự. Khi bạn đang suy nghĩ về hiệu suất thông lượng tuần tự, bạn cần phải xem xét đường dẫn hoàn chỉnh của dữ liệu, từ việc dữ liệu đang ở trạng thái nghỉ trên phương tiện lưu trữ của bạn đến việc nó được sử dụng bởi các lõi xử lý của bạn.
Tùy thuộc vào loại công nghệ lưu trữ bạn đang sử dụng, nó có thể được kết nối với máy chủ lưu trữ của bạn bằng thẻ giao diện mạng Ethernet (NIC) hoặc thẻ bộ điều hợp kênh máy chủ InfiniBand (HCA). Loại kết nối này phổ biến nhất đối với iSCSI SAN và chia sẻ tệp tin khối máy chủ từ xa (SMB) 3.0. Microsoft TechNet có một tài liệu tham khảo tốt về chủ đề này, được gọi là Cải thiện Hiệu suất của Máy chủ Tệp với SMB Direct.
Thông lượng tuần tự lý thuyết của một thiết bị NIC / HCA đơn lẻ (mỗi cổng) được thể hiện trong Hình 1:
Hình 1:Thông lượng NIC / HCA lý thuyết
Chỉ trong trường hợp bạn đang tự hỏi tham khảo InfiniBand (QDR) hoặc Infiniband (FDR), Hiệp hội Thương mại InfiniBand duy trì một Lộ trình InfiniBand cho thấy lịch sử và những tiến bộ đã lên kế hoạch trong băng thông InfiniBand trong vài năm tới. Infiniband có một danh sách các từ viết tắt mô tả hiệu suất tương đối của liên kết InfiniBand như được hiển thị bên dưới:
- SDR - Tốc độ dữ liệu duy nhất
- DDR - Tốc độ dữ liệu gấp đôi
- QDR - Tốc độ Dữ liệu Bốn
- FDR - Tốc độ dữ liệu mười bốn
- EDR - Tốc độ dữ liệu nâng cao
- HDR - Tốc độ dữ liệu cao
- NDR - Tốc độ dữ liệu tiếp theo
SAN kênh cáp quang (FC) truyền thống thường sử dụng một hoặc nhiều bộ điều hợp bus chủ (HBA) có một hoặc nhiều cổng cho cáp quang kết nối với bộ chuyển mạch FC hoặc trực tiếp đến chính FC SAN. Vẫn còn tương đối hiếm khi thấy HBA 16Gb FC được sử dụng rộng rãi, vì vậy hầu hết các máy chủ lưu trữ vẫn có 4Gb hoặc 8Gb FC HBA.
Thông lượng tuần tự lý thuyết của một thiết bị HBA (mỗi cổng) được thể hiện trong Hình 2:
Hình 2:Thông lượng HBA lý thuyết
Bất kể bạn đang sử dụng loại thiết bị giao diện hoặc công nghệ nào, bạn cần quan tâm đến loại khe cắm bus mở rộng mà nó được cắm vào trên máy chủ lưu trữ của bạn. Tùy thuộc vào độ tuổi của máy chủ của bạn và loại bộ xử lý mà nó đang sử dụng, điều này có thể có tác động rất lớn đến tổng băng thông mà khe cắm bus có thể hỗ trợ. Khe cắm PCIe Gen 3 của cấu phần ngoại vi có băng thông trên mỗi làn gấp đôi so với khe cắm PCIe Gen 2 cũ hơn. Bạn có thể xác định số lượng và loại khe cắm mở rộng bạn có trong máy chủ lưu trữ của mình bằng cách xem thông số kỹ thuật và tài liệu về thương hiệu và kiểu máy chủ của bạn. Cho đến nay, chỉ có bộ xử lý gia đình Intel Xeon E3 v2, Xeon E3 v3, Xeon E5, Xeon E5 v2, Xeon E5 v3 và Xeon E7 v2 hỗ trợ khe cắm PCIe Gen 3. Bất kỳ thứ gì cũ hơn thế này sẽ có khe cắm PCIe Gen 2 hoặc thậm chí có thể là khe cắm PCIe Gen 1 nếu nó quá cũ (về mặt máy tính).
Thông lượng tuần tự lý thuyết của một khe PCIe được thể hiện trong Hình 3:
Hình 3:Thông lượng khe mở rộng lý thuyết
Kể từ khi giới thiệu vi kiến trúc Intel Nehalem vào năm 2008, tất cả các bộ xử lý máy chủ Intel 2P và lớn hơn đều hỗ trợ Intel QuickPath Interconnect (QPI) cho các kết nối giữa bộ xử lý và bộ nhớ trong máy chủ, giúp các bộ vi xử lý mới hơn này hỗ trợ Truy cập Bộ nhớ Không đồng nhất (NUMA), thay thế cho xe buýt phía trước cũ hơn (FSB). NUMA cải thiện khả năng mở rộng khá đáng kể khi số lượng bộ xử lý vật lý trong hệ thống tăng lên, đặc biệt là khi bạn có bốn bộ xử lý vật lý trở lên trong hệ thống máy chủ.
Bộ xử lý Intel hiện đại có bộ điều khiển bộ nhớ tích hợp hỗ trợ Intel QPI. Khi bạn xem thông số kỹ thuật của một bộ xử lý Intel cụ thể trong cơ sở dữ liệu ARK trực tuyến, bạn sẽ có thể thấy hiệu suất QPI được đánh giá của nó trong GigaTransfers trên giây (GT / giây). GigaTransfer trên giây chỉ đơn giản là một tỷ hoạt động truyền dữ liệu mỗi giây.
Ví dụ:bộ xử lý Intel Xeon E5-2667 v3 hiện đại, cao cấp (Haswell-EP) có Tốc độ Intel QPI là 9,6 GT / giây, trong khi bộ xử lý Intel Xeon E5503 cũ hơn, cấp thấp hơn (Nehalem-EP) có Intel QPI Tốc độ chỉ 4,8 GT / giây. Ngay cả giữa các bộ vi xử lý từ cùng một vi kiến trúc thế hệ, bạn sẽ thấy các biến thể về Tốc độ Intel QPI được xếp hạng. Ví dụ:trong dòng Haswell-EP 22nm, bộ xử lý Intel Xeon E5-2603 v3 cấp thấp được đánh giá ở tốc độ 6,4 GT / giây, trong khi bộ xử lý Intel Xeon E5-2660 v3 cao cấp hơn được đánh giá là 9,6 GT / giây. Bộ xử lý Intel Xeon E5, E5 v2 và E5 v3 có hai liên kết QPI trên mỗi bộ xử lý, trong khi bộ xử lý họ Intel E7 và E7 v2 có ba liên kết QPI trên mỗi bộ xử lý.
Thông lượng tuần tự lý thuyết của một liên kết Intel QPI duy nhất được thể hiện trong Hình 4:
Hình 4:Thông lượng Intel QPI lý thuyết
Tùy thuộc vào độ tuổi của máy chủ lưu trữ của bạn, bộ xử lý chính xác mà nó đang sử dụng và loại, tốc độ và dung lượng bộ nhớ được cài đặt, bạn sẽ có lượng thông lượng tuần tự lý thuyết khác nhau từ mỗi mô-đun bộ nhớ. Tất cả các bộ vi xử lý Intel hiện đại đều có bộ điều khiển bộ nhớ tích hợp để kiểm soát dung lượng và tần số của bộ nhớ mà bộ xử lý sẽ hỗ trợ. Hầu hết các máy chủ lưu trữ cổ điển gần đây sẽ sử dụng bộ nhớ DDR3, trong khi bộ vi xử lý Haswell-EP (dòng Intel Xeon E5 v3) thế hệ mới nhất hỗ trợ bộ nhớ DDR4. Bộ nhớ DDR4 hỗ trợ tốc độ cao hơn, thông lượng cao hơn, mật độ bộ nhớ cao hơn, tiêu thụ điện năng thấp hơn và cải thiện độ tin cậy so với bộ nhớ DDR3.
Thông lượng tuần tự lý thuyết của một mô-đun bộ nhớ đơn được thể hiện trong Hình 5:
Hình 5:Thông lượng mô-đun bộ nhớ lý thuyết
Khi bạn xem xét các thành phần riêng lẻ trong một hệ thống mới hiện có hoặc đã được lên kế hoạch, bạn nên đề phòng các thành phần không khớp có thể gây tắc nghẽn hiệu suất tuần tự giả tạo vào hệ thống. Ví dụ:bạn có thể có một máy chủ hoàn toàn mới với bộ xử lý cao cấp bị tê liệt do nó đang sử dụng 4Gb FC HBA để truy cập SAN. Một ví dụ khác có thể là thẻ lưu trữ flash PCIe rất nhanh hoặc bộ điều khiển RAID được cài đặt trong khe cắm PCIe 2.0 x4 băng thông thấp, điều này giới hạn giả tạo tổng thông lượng tuần tự của thiết bị.
Tôi biết rằng đây là rất nhiều thông tin kỹ thuật cần tiêu hóa, đặc biệt là đối với những người không đam mê phần cứng. Tôi nghĩ rằng ý tưởng chính mà bạn nên rút ra khỏi bài viết này là hiệu suất thông lượng tuần tự khá quan trọng đối với nhiều tác vụ và khối lượng công việc SQL Server phổ biến. Các chi tiết cấp thấp về bộ xử lý, loại bộ nhớ, khe cắm mở rộng và thiết bị mở rộng thực sự tạo ra rất nhiều khác biệt trong hiệu suất thông lượng tuần tự mà bạn sẽ nhận được từ máy chủ và hệ thống con lưu trữ của nó. Có thông lượng tuần tự tốt giúp cuộc sống của bạn trở nên dễ dàng hơn rất nhiều với tư cách là một chuyên gia cơ sở dữ liệu, cho phép bạn hỗ trợ tổ chức của mình ở cấp độ cao hơn nhiều.