Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Hệ thống phân cấp công nghệ bộ nhớ / lưu trữ và SQL Server

Có một mạng cũ nói rằng:“Vấn đề băng thông có thể được chữa khỏi bằng tiền. Các vấn đề về độ trễ khó hơn vì tốc độ ánh sáng được cố định ”.

Theo truyền thống, có bốn lớp chính trong bộ nhớ tổng thể và hệ thống phân cấp lưu trữ của một máy chủ cơ sở dữ liệu. Bắt đầu từ trên cùng của kim tự tháp, bạn có bộ nhớ đệm truy cập ngẫu nhiên tĩnh (SRAM), thường được chia thành bộ nhớ đệm L1 và L2 tương đối nhỏ, nhanh cho mỗi lõi vật lý của bộ xử lý và bộ nhớ nhanh hơn, chậm hơn, chia sẻ bộ nhớ đệm L3 cho toàn bộ bộ xử lý. Ví dụ:bộ xử lý 14nm Intel Xeon E7-8890 v4 (Broadwell-EX) có bộ nhớ đệm L1 64KB mỗi lõi và bộ nhớ đệm L2 256KB mỗi lõi, cùng với bộ đệm L3 60MB lớn hơn nhưng chậm hơn nhiều được chia sẻ trên toàn bộ bộ xử lý vật lý .

Lớp thứ hai là bộ nhớ truy cập ngẫu nhiên động (DRAM) với dung lượng giấy phép lên đến 4TB với Windows Server 2012 R2, lên đến 24TB với Windows Server 2016 và có độ trễ trong phạm vi nano giây. Cả SRAM và DRAM đều dễ bay hơi, có nghĩa là chúng chỉ giữ dữ liệu khi sử dụng nguồn điện.

Lớp thứ ba là SSD SATA / SAS (NAND), với dung lượng riêng lẻ lên đến khoảng 4TB và độ trễ trong phạm vi micro giây. Một yếu tố hạn chế với SSD SATA / SAS (NAND) cũ hơn là thực tế là chúng đang sử dụng giao diện SATA / SAS giới hạn tổng băng thông của chúng, tùy thuộc vào phiên bản SATA / SAS mà chúng đang sử dụng. Chúng cũng bị hạn chế bằng cách sử dụng giao thức AHCI kế thừa có chi phí I / O nhiều hơn và độ trễ cao hơn so với giao thức NVMe mới hơn. Lớp thứ tư là các ổ đĩa cứng đa phương tiện quay từ tính kế thừa, với dung lượng riêng lẻ lên đến 10TB và độ trễ trong phạm vi mili giây.

Mỗi lớp truyền thống này có độ trễ cao hơn, nhưng chi phí cho mỗi MB / GB thấp hơn và tổng dung lượng cao hơn khi bạn di chuyển xuống phân cấp bộ nhớ / bộ nhớ. Độ trễ tương đối của bốn lớp truyền thống này được thể hiện trong Bảng 1.

Giao diện Loại Độ trễ Tương đối (lần đọc)
Trên CPU lõi / On Die SRAM Cache 1x
Đính kèm Trực tiếp DRAM DDR4 10x
PCIe NVMe hoặc SATA / SAS AHCI SSD 100.000x
SAS / SATA Ổ cứng 10.000.000x

Bảng 1:Bộ nhớ / Lớp lưu trữ truyền thống

Bộ nhớ / Lớp lưu trữ mới

Trong vài năm qua, chúng ta đã thấy sự ra đời và sử dụng ngày càng nhiều của SSD NVM Express (NVMe) PCIe dựa trên công nghệ flash NAND hiện có. Chúng thường có độ trễ trong phạm vi 50-100 micro giây. Chúng cũng sử dụng giao thức NVMe mới hơn, hiệu quả hơn nhiều và giao diện PCIe, cho hiệu suất tốt hơn nhiều so với các ổ SSD SAS / SATA cũ hơn sử dụng giao thức AHCI cũ.

Hiện tại, Hewlett Packard Enterprise (HPE) đang bán mô-đun NVDIMM 8GB cho máy chủ HPE Proliant DL360 Gen9 và máy chủ HPE Proliant DL380 Gen9 của họ. Các mô-đun này có 8GB DRAM được hỗ trợ bởi 8GB flash với giá $ 899,00, khá đắt trên mỗi gigabyte. Các máy chủ hai ổ cắm này có 24 khe cắm bộ nhớ, mỗi khe cắm hỗ trợ tối đa 128 GB DDR4 DIMM truyền thống. Mọi khe cắm bạn sử dụng cho mô-đun NVDIMM sẽ không khả dụng cho việc sử dụng bộ nhớ thông thường. Bạn có thể sử dụng tối đa 16 khe cắm bộ nhớ để sử dụng NVDIMM, cung cấp cho bạn dung lượng tối đa là 128GB. Bạn phải sử dụng bộ xử lý dòng Intel Xeon E5-2600 v4 để được hỗ trợ NVDIMM chính thức. Micron dự kiến ​​sẽ phát hành các NVDIMM 16GB dung lượng lớn hơn vào tháng 10 năm 2016.

Thiết bị IOPS Độ trễ Trung bình (ns) MB / giây
NVM Express SSD 14.553 66,632 56,85
Chế độ Chặn NVDIMM 148.567 6.418 580,34
Chế độ DAX NVDIMM 1.112.007 828 4.343,78

Bảng 2:So sánh hiệu suất ghi ngẫu nhiên 4K (1 luồng, QD1)

Các số liệu về hiệu suất trong Bảng 2 là từ bản trình bày của Microsoft / Intel (Bộ nhớ liên tục trong Windows) tại IDF16 ở San Francisco, sử dụng phương pháp kiểm tra hiệu suất này:

  • Khối lượng công việc :Ghi ngẫu nhiên 4KB, 1 luồng, 1 I / O nổi bật, I / O đồng bộ, tệp 1GB, NTFS, khởi động 3 giây, thời gian đo 7 giây
  • Phần cứng :HPE ProLiant DL380 Gen9, 2x Intel Xeon E5-2650L v3 @ 1.8GHz, 96GB RAM, 2x 8GB NVDIMM-N, 1x 1600GB NVMe SSD
  • Phần mềm :Bản dựng WS 2016 được phát hành trước, công cụ I / O nội bộ của Microsoft

Có một video hay trên Kênh 9 có tên Tăng tốc hiệu suất SQL Server 2016 với bộ nhớ ổn định trong Windows Server 2016 có sự tham gia của Lindsey Allen và Tobias Klima. Bản giới thiệu trong video cho thấy cách SQL Server 2016 chạy trên Windows Server 2016 hỗ trợ chế độ DAX (với cờ theo dõi không xác định). Sau khi Windows Server 2016 sử dụng GA, cờ theo dõi sẽ không cần thiết với phiên bản SQL Server trong tương lai.

Các lớp lưu trữ bộ nhớ mới này sẽ xen kẽ giữa bộ nhớ DRAM truyền thống và ổ SSD SATA / SAS.

Ổ đĩa lưu trữ đã được định dạng ở Chế độ DAX có thể được sử dụng để lưu trữ tệp nhật ký giao dịch SQL Server 2016 trong trường hợp bạn cần hiệu suất ghi tốt nhất có thể và bạn không muốn sử dụng Độ bền bị trễ hoặc OLTP trong bộ nhớ. Một trường hợp khác có thể xảy ra là sử dụng khối lượng Chế độ DAX để lưu trữ các tệp dữ liệu tempdb của bạn nếu bạn có khối lượng công việc khiến tempdb quá căng thẳng.

Bộ nhớ / Lớp lưu trữ trong tương lai

Vào cuối năm 2016 / đầu năm 2017, chúng ta sẽ thấy sự ra đời của ổ SSD Intel Optane sử dụng giao thức NVMe. Đây sẽ là các thiết bị lưu trữ flash sử dụng Công nghệ Intel / Micron 3D XPoint (phát âm là điểm chéo), sẽ hoạt động trong các máy chủ hiện có. Trong thử nghiệm nội bộ của Intel, các thiết bị này cho thấy độ trễ thấp hơn khoảng 10 lần và IOPS cao hơn khoảng 10 lần so với các thiết bị SSD Intel DC P3700 Series PCIe NVMe hiệu suất rất cao hiện có.

Vào giữa / cuối năm 2017, chúng ta cũng sẽ thấy sự ra mắt của một dạng DIMM bền bỉ mới có thể được sử dụng làm bộ nhớ liên tục dung lượng rất lớn hoặc bộ nhớ dung lượng thấp hiệu suất cực cao. Chúng sẽ tương thích về điện và vật lý với DDR4 DIMM hiện tại và sẽ được hỗ trợ trong nền tảng bộ xử lý Intel Xeon thế hệ tiếp theo (nền tảng Skylake “Purley”). Các sản phẩm này cũng sẽ dựa trên Công nghệ Intel / Micron 3D XPoint. Những Intel DIMM này sẽ cung cấp gấp đôi dung lượng bộ nhớ hệ thống với chi phí thấp hơn đáng kể so với DDR4 DRAM truyền thống, giả sử nền tảng bộ xử lý / máy chủ của bạn hỗ trợ nó (và Microsoft tăng giới hạn bộ nhớ giấy phép sau khi Windows Server 2016 được phát hành). Các DIMM này sẽ không có cùng độ trễ như DRAM truyền thống (chúng sẽ chậm hơn), nhưng chúng sẽ cung cấp độ trễ thấp hơn nhiều so với các thiết bị lưu trữ PCIe NVMe.

Từ quan điểm rộng hơn, toàn ngành, danh mục thiết bị Bộ nhớ liên tục (PM) mới này sẽ cung cấp khả năng lưu trữ ổn định với hiệu suất gần giống DRAM. Các thiết bị PM nằm trực tiếp trên bus bộ nhớ, cho độ trễ rất thấp và băng thông cao. Microsoft hỗ trợ các thiết bị PM trong Windows 10 Anniversary Update và Windows Server 2016. Sẽ có hỗ trợ cho một loại dung lượng lưu trữ mới, được gọi là Khối lượng lưu trữ truy cập trực tiếp (DAX). DAX Volumes sử dụng các tệp ánh xạ bộ nhớ để cung cấp cho các ứng dụng quyền truy cập trực tiếp vào thiết bị PM để có hiệu suất tuyệt đối tốt nhất.

Một lý do tại sao chế độ DAX nhanh hơn nhiều là vì sau khi bạn đã lập bản đồ bộ nhớ vùng NVDIMM trên ổ đĩa DAX, các tương tác sâu hơn với bộ nhớ đó sẽ hoàn toàn bỏ qua ngăn xếp bộ nhớ. Nó thực sự chỉ là một bản ghi nhớ để có dữ liệu được ổn định. Đó là toàn bộ mã mà bạn không phải thực thi trên mỗi lần tương tác với bộ nhớ. Đó là một yếu tố khác góp phần rất quan trọng vào độ trễ (cùng với tốc độ ánh sáng). Ổ đĩa DAX được hỗ trợ trên NTFS và bạn phải chọn chế độ DAX khi định dạng ổ đĩa. Các ứng dụng (chẳng hạn như SQL Server 2016) phải được sửa đổi (bởi Microsoft) để hỗ trợ và sử dụng chế độ DAX, đồng thời bạn cũng cần bật cờ theo dõi.

Đối với khả năng tương thích ngược trên phần cứng PM, cũng sẽ có khối lượng chế độ Chặn, duy trì tất cả các ngữ nghĩa lưu trữ hiện có. Tất cả các hoạt động I / O sẽ đi qua ngăn xếp lưu trữ đến trình điều khiển đĩa PM. Điều này làm cho chế độ Chặn hoàn toàn tương thích với các ứng dụng hiện có. Nếu bạn có thiết bị phần cứng PM, với hệ điều hành được hỗ trợ, bạn sẽ nhận được hiệu suất lưu trữ đáng kể mà không cần bất kỳ sửa đổi ứng dụng nào ở chế độ Chặn. Điều này có nghĩa là các phiên bản SQL Server cấp thấp hơn sẽ có thể sử dụng khối lượng lưu trữ ở chế độ Chặn.

Điểm mấu chốt của tất cả những điều này là chúng tôi sẽ có nhiều tùy chọn mới và linh hoạt hơn về cách thiết kế và cấu hình các lớp bộ nhớ và hệ thống lưu trữ của bạn trong 12-18 tháng tới, miễn là bạn đang sử dụng SQL Server 2016 trên Windows Máy chủ 2016 và có phần cứng đủ mới có thể hỗ trợ các thiết bị PM. Các phiên bản SQL Server cũ hơn sẽ có thể sử dụng khối lượng PM ở chế độ Chặn nếu chúng đang chạy trên Windows Server 2016. Phần cứng cũ hơn và các phiên bản Windows Server cũ hơn sẽ có thể sử dụng SSD Intel Optane. Điều này sẽ cung cấp cho chúng tôi nhiều lựa chọn bổ sung để cải thiện hiệu suất lưu trữ!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 4 Chức năng để định dạng một số thành 2 vị trí thập phân trong SQL Server

  2. băm một hàng SQL?

  3. Giao dịch xung quanh một câu lệnh đơn làm gì?

  4. SQL Server là gì?

  5. Các cách khôi phục dữ liệu từ tệp nhật ký giao dịch SQL Server