Hướng dẫn giải phóng ram sql server 2008r2

Cách đây vài năm, VMware đã phát hành một tờ giấy trắng mới có tên “Architecting Microsoft SQL Server trên VMware vSphere”.

Được xuất bản vào tháng 8 năm 2018, nó nêu ra các cách thực hành tốt nhất để chạy SQL Server trên vSphere.

Hai mươi hai năm trước, VMware đã ra mắt và thay đổi mãi mãi thế giới điện toán.

SQL Server và VMware đi cùng nhau như “Keo dính + Giấy dán và Tường”. Đọc để xem chi tiết: Architecting Microsoft SQL Server on VMware vSphere

Tôi sẽ chỉ ra một số điểm chính yếu và thiết thực để thực hiện. Toàn bộ bài viết đáng để đọc; tuy nhiên, tôi sẽ chỉ khám phá một vài phần nói về các tính năng bổ sung của VMware như vMotion, Memory Overhead, Memory reserved… Tài liệu chứa nhiều trích dẫn bạn có thể nghiên cứu để đi sâu hơn nếu bạn chọn.

1. Tính toán đúng kích thước tài nguyên cho máy chủ ảo: MS-SQL

Đừng làm tràn tài nguyên CPU, Memory và IOPS trên máy chủ Vật lý/ Ảo hóa của bạn

Hiểu khối lượng công việc Máy chủ SQL cần chạy của bạn sẽ giúp xác định mức độ sử dụng của từng tài nguyên được yêu cầu. Thỏa thuận cấp độ dịch vụ của chúng ta [SLA] sẽ ra lệnh cho phần cứng nào chúng ta cho chạy trên đó. Cơ sở dữ liệu OLTP và OLAP có thể khác nhau về cách tiếp cận, nhưng tất cả điều này rất hữu ích khi lập kế hoạch ảo hóa SQL Server và chạy trên VMware.

Các chuyên gia đã có một số bài viết giải thích khái niệm kích thước cần cấu hình VM phù hợp. Bài viết này của tôi không có ý định lập kế hoạch tính toán hiệu suất hay năng lực của việc chạy MS-SQL trên Ảo hóa – đó là một chủ đề khác nhau. Do bản chất của VMware vSphere ảo hóa và cách chúng ta sử dụng ảo hóa, có những khác biệt chính liên quan đến phân bổ tài nguyên so với máy chủ vật lý.

Kích thước cấu hình bạn chọn mức tài nguyên phải phù hợp cho từng VM theo các ứng dụng là khác nhau.

P.S: Chúng ta muốn các ứng dụng vận hành với tài nguyên Tối đa nhưng vẫn bền vững mà không ảnh hưởng đến các tài nguyên /ứng dụng khách khác đang có trên máy chủ. Điều này phụ thuộc vào hiệu suất cơ sở và đo lường hiệu suất trong một khoảng thời gian vận hành.

2. Tại sao phân bổ tài nguyên quá mức lại là một máy ảo tồi?

Tại sao việc phân bổ đúng lượng tài nguyên phù hợp cho VM Guest khi bạn cần chạy SQL Server lại quan trọng như vậy?

Chúng ta đều biết vấn đề với một hệ thống chưa được khai thác vận hành là thường có suy nghĩ đơn giản là cấu hình đi bấm nút chạy mới biết; Tuy nhiên, những gì thuộc về một hệ thống quá khổ/quá tải thì lại không làm thế được? Vấn đề đó có thể được định hình/xác định/cấu hình thiết kế trước hay không?

Dưới đây là một vài vấn đề phổ biến cần xem xét:

  • CPU phân bổ quá mức gây ra việc sử dụng tài nguyên thấp trên tất cả các máy ảo VM guest.
  • Việc phân bổ bộ nhớ quá mức không cần thiết làm tăng sự tranh chấp và chi phí bộ nhớ trên các máy VM Guest khác đang chạy cùng với MS-SQL.
  • Việc có nhiều vCPU được gán cho VM có thể có tác động đến việc cấp phép bản quyền vSphere hoặc các dịch vụ bị hạn chế vCPU vSphere FT-HA.

3. ESXi Host Configuration

Tôi đã viết về các thực tiễn tốt nhất trong bài Cách tránh thắt cổ chai ở máy chủ SQL của tôi. Trong đó có rất nhiều lời nhắc về việc nên thay đổi cấu hình nào từ mặc định và cấu hình nào cần thay đổi về ổ cứng chứa TempDB, log của file tempdb. Bài viết này nói rõ hơn về MS SQL chạy trên Ảo hóa – Hãy chia nhỏ các chủ đề sau:

  1. Cấu hình Power
  2. Cấu hình CPU
  3. Tùy chọn về Memory
  4. Thống nhất về thiết kế Storage
  5. Cấu hình Networking Ảo

3.1. Cấu hình Power:

Các cài đặt bạn có để cung cấp năng lượng có thể ảnh hưởng lớn đến hiệu suất hệ thống. Trích dẫn từ sách trắng:

“Cách tốt nhất là cập nhật phần BIOS / UEFI firmware trên máy chủ vật lý đang chạy, các hệ thống quan trọng lên phiên bản mới nhất và đảm bảo tất cả các thiết bị I/O đều có phiên bản phần firmware được hỗ trợ mới nhất và đồng bộ tương thích.”

Trong phiên bản vSphere 5.x, cài đặt nguồn mặc định được cân bằng. Đối với một VM chạy SQL Server, điều này là không đủ. Thay đổi nó để hiệu suất cao. Cài đặt này có tác động lớn hơn đến hiệu suất mà bạn có thể nghĩ tới.

Khuyến cáo: cấu hình ESXi Host Power Management

3.2. Cấu hình CPU:

Hãy chú ý đến số Sockets CPU và số Core của máy chủ vật lý để lấy ra số tổng vCPU gán cho VM Guest OS chạy MS-SQL.

“Hãy cẩn thận với cấu hình CPU không vượt quá số lượng lõi vật lý trên máy chủ ESXi cho bất kỳ VM guest OS nào!”

Một số lời khuyên nhắc nhở khác:

  • Kích hoạt tính năng siêu phân luồng [Hyper-threading “HT” Enable nếu có].
  • Tạo ít số sockets x số Core lõi hơn tổng số Core lõi trên 1 máy chủ vật lý dành cho mỗi VM – không phải theo cách khác mà theo cách VMware [Socket x Core x HT].
  • Không sử dụng kiểu đồng dạng “CPU affinity” vì nó làm giới hạn trình ảo hóa trong việc lên lịch cân bằng tải, hiệu quả các vCPU trên các máy chủ vật lý bị giảm, hoặc gây lỗi không vMotion được trên các máy chủ vật lý khác nhau.

Dưới đây là bảng tài liệu hiển thị các ví dụ VM có kích thước tiêu chuẩn:

Cấu hình chuẩn VM chạy MS-SQL Server.

  • 8 vCPU được coi là 1 SMP chuẩn, và 1 SMP tương đương với 1 gói Threads 8bit giải phóng dữ liệu 1 Network pool [1 – 10Gbps].

3.3. Tùy chọn về Memory:

Điều quan trọng cần chú ý liên quan đến việc cấp phát bộ nhớ là việc tăng tốc bộ nhớ. Về cơ bản, đây là khi trình ảo hóa phải kéo bộ nhớ ra khỏi máy ảo để cung cấp cho một trong các máy ảo khác cần nó [tranh chấp, ưu tiên tài nguyên]. Điều này sẽ làm giảm hiệu suất của chính máy ảo đang chạy! chính vì lý do đó, chúng ta nên

Chọn “Reserve all guest memory [All locked] thay vì sử dụng kiểu bổ nhớ ngầm định “over-commit memory – Bộ nhớ luôn sử dụng kiểu vượt mức tự động co giãn” vì với kiểu này, khi các máy chủ VM MS-SQL chạy hiệu suất cần lớn xử lý Data Cluster, Data warehouse, Data mining/Cube/ Report hoặc BigData sẽ làm bottleneck hoặc gây hiệu ứng đổ sập do thiếu bộ nhớ “Domino VMs”.

Trường hợp máy chủ Ảo chúng ta chạy MS SQL 2017, sẽ cấu hình sau:

Cấu hình chọn Memory Reservation

3.4. Storage Considerations:

Phương pháp phổ biến nhất là lưu trữ hệ thống tệp file của máy ảo trên hệ thống lưu trữ được chia sẻ “Share Storage và Block files chia nhỏ dạng Sub-block < 16KB”.

Mô hình Phân lớp Lưu trữ Ảo “VMware Storage Virtualization Stack”

  • Đảm bảo sử dụng kiểu: Paravirtual SCSI Adapter làm bộ điều khiển đĩa của bạn.
  • Đối với Ổ cứng cần chạy Virtual Disk cho SQL Server, hãy nhớ chia nhỏ các đĩa của bạn cho các tệp cơ sở dữ liệu lưu DATA mdb, Logs transaction ldf, tempdb. Điều này sẽ làm giảm sự tranh chấp I/O [iops].

  • Hãy dùng loại ổ SSD/NVME3 cho các phân hoạch Cache hoặc ghi dữ liệu tempdb và chia thành nhiều ổ [số lượng ổ tempdb = vCPU của VM].

3.5. Virtual Networking:

Thực hành tốt nhất về Mạng ảo nằm trong phần Module 5- Tạo vSS/vDS cung cấp mạng riêng ảo cho máy chủ SQL Server.

  • Bật jumbo Frame cho vSphere vSwitch [MTU thay đổi từ 1500 tới 9000]
  • Đặc biệt là khi thực hiện di chuyển bằng vMotion với các VM chạy MS-SQL.
  • Cấu hình Switch vật lý để làm Port channel/Ethernet Channel.
  • Các VM chạy MS-SQL nên có từ 2 – 8 ports group cấu hình NIC Teaming từ 1Gbps – 10Gbps.

3.6. Cấu hình Guest VM:

Nhiều tổ chức có chính sách tuyên bố mọi máy chủ phải quét AV [vi-rút – ngay cả SQL Server].

Điều này có thể được tranh luận nếu đó là một lựa chọn khôn ngoan hoặc hoạt động lãng phí. Tuy nhiên, nếu bạn phải chạy quét vi-rút trên Máy chủ SQL của mình thì vui lòng liệt kê danh sách trắng các tệp cơ sở dữ liệu và tệp nhị phân [.bin, .exe, .com, .bat, .scr, .pif…].

Cấp phát bộ nhớ cho SQL Server tương tự như vật lý. Thông thường, chúng ta đặt bộ nhớ tối thiểu được phân bổ cho SQL Server thành 0 và tối đa ở một giá trị phù hợp. Đối với các hệ thống quan trọng của nhiệm vụ cấp 1, VMware đề nghị đặt cả bộ nhớ tối thiểu và tối đa cho cùng một giá trị. Ngoài ra, họ khuyên bạn nên sử dụng LPIM [các trang bị khóa trong bộ nhớ].

Đối với CTFP và MAXDOP, lời khuyên tương tự như với máy chủ vật lý. Bạn có thể tìm đọc về tất cả các thực tiễn tốt nhất để cấu hình SQL Server: Hướng dẫn chẩn đoán môi trường của SQL Server.

3.7. Trường hợp cấu hình máy chủ SQL Server High Availability:

Bạn có thể sử dụng bất kỳ tính năng HA nào có sẵn cho SQL Server khi ảo hóa.

Dưới đây là bảng tóm tắt các lựa chọn:

SQL Server 2012/2014 + High Availability

Tóm lại, Máy chủ SQL Server có cơ sở / yêu cầu cài đặt tương đối lớn trong số các sản phẩm thuộc nhóm RDBMS “Hệ CSDL Enterprise”.

Trong 20 năm qua, các tổ chức đã ngày càng sử dụng ảo hóa để giảm chi phí và sử dụng hiệu quả hơn các tài nguyên tính toán của họ.

VMware là công ty hàng đầu trong lĩnh vực này – đó là điều phổ biến nhất trên thị trường toàn cầu. Gọi là “Nhà ảo – thật gia” có ngoài tự nhiên.

Do đó, một DBA cao thủ cần biết một chút về ảo hóa.

Nếu không bạn đang bỏ lỡ từ cơ hội trở thành Data Scientist, Analytics BI, DBA về BigData về Power BI, AI mà không biết gì về Database…

Tặng thêm: cho các bạn 1 lỗi khi dùng MS-SQL Server 2017 import data từ Excel hoặc Access file DB.

Lỗi: “Troubleshooting MS-SQL 2017 can’t use the Access ODBC driver or OLEDB provider outside Office Click-to-Run applications

OLE DB provider Microsoft.ace.oledb.16.0 is not registered.”

Áp dụng:

Access 2016, Access 2013, Access for Office 365, Access 2019, Excel 2013, Excel 2016, Excel 2019, Excel for Office 365

Hoặc Lỗi: “ODBC or Microsoft.ACE.OLEDB.12.0 OLEDB provider connections that will be used outside of Office”

Cách sửa: Bạn nên download và cài thêm tool Microsoft Access Database Engine 2016 Redistributable

Ghi chú: Nếu bộ MS Office 365đã được cài trên máy, bạn sẽ cần phải dùng lệnh gõ trên command line để cài:

:\ /quiet

Ví dụ: C:\AccessDatabaseEngine.exe /quiet

Chúc các bạn thành công!

Chủ Đề