Cấu hình và tối ưu CPU trên Amazon RDS for SQL Server

Tác giả: Barry Ooi và Sudarshan Roy
Ngày đăng: 07/01/2026
Danh mục: Amazon RDS, Intermediate (200), RDS for SQL Server, Technical How-to

Amazon Relational Database Service (Amazon RDS) for SQL Server hiện đã cung cấp tính năng Optimize CPU, cho phép bạn kiểm soát việc phân bổ vCPU thông qua thiết lập điều chỉnh số lượng core. Chi phí bản quyền SQL Server có thể chiếm một phần đáng kể trong ngân sách cơ sở dữ liệu, đặc biệt khi bạn phải trả tiền cho các vCPU không được sử dụng hết công suất. Bài viết này trình bày cách triển khai tính năng Optimize CPU nhằm giúp giảm chi phí bản quyền trong khi vẫn duy trì hiệu năng cho cả các instance Amazon RDS mới và hiện có, đồng thời cung cấp kết quả benchmark hiệu năng và phân tích tác động chi phí.

Tổng quan giải pháp

Bạn có thể sử dụng AWS Management Console để triển khai giải pháp hoặc tự động hóa quy trình. Hiệu năng SQL Server thường phụ thuộc vào việc lựa chọn loại instance phù hợp, trong đó bộ nhớ và lưu trữ (input/output operations per second (IOPS) và throughput) là các yếu tố quan trọng. Mặc dù các workload xử lý giao dịch trực tuyến (OLTP) thường bị giới hạn bởi bộ nhớ hoặc I/O hơn là CPU, việc tối ưu tài nguyên CPU vẫn có thể mang lại lợi ích về chi phí mà không ảnh hưởng đến hiệu năng.

Trong bài viết này, chúng tôi sẽ trình bày cách cấu hình tối ưu CPU cho các instance RDS mới và hiện có, chia sẻ kết quả benchmark hiệu năng, và giúp bạn hiểu rõ tác động về chi phí. Cụ thể, giải pháp bao gồm:

  • Tạo Amazon RDS instance mới với cấu hình CPU được tối ưu
  • Điều chỉnh (modify) các instance hiện có
  • Thực hiện khôi phục (restore) instance với cấu hình CPU được tối ưu
  • Kiểm thử hiệu năng trên nhiều cấu hình khác nhau
  • Phân tích lợi ích chi phí

Sơ đồ dưới đây minh họa kiến trúc của giải pháp.

Solution Diagram

Điều kiện tiên quyết

Trước khi triển khai giải pháp này, hãy đảm bảo bạn có:

Giải pháp này bao gồm việc tạo và sử dụng các tài nguyên AWS mới, do đó sẽ phát sinh chi phí trên tài khoản của bạn. Tham khảo AWS Pricing để biết thêm thông tin.

Chúng tôi khuyến nghị mạnh mẽ bạn triển khai và thực hiện kiểm thử end-to-end trong môi trường non-production trước khi áp dụng giải pháp này vào môi trường production.

Triển khai tối ưu CPU

Có ba cách khác nhau để tối ưu CPU. Bạn có thể tạo một RDS instance mới, chỉnh sửa một RDS instance hiện có, hoặc khôi phục một instance. Các phần tiếp theo sẽ cung cấp hướng dẫn từng bước cho từng tùy chọn.

Tùy chọn 1: Tạo một RDS instance mới

Để tạo một RDS for SQL Server instance mới với tính năng Optimize CPU, hãy thực hiện các bước sau:

  1. Truy cập Amazon RDS console, chọn Create database.
  2. Chọn Standard create.
  3. Chọn Microsoft SQL Server làm loại engine.
  4. Tại Database management type, chọn Amazon RDS.
  5. Chọn một SQL Server Edition. Trong bài viết này, chúng tôi chọn Enterprise Edition.
  6. Chọn SQL Server Version được hỗ trợ. Chúng tôi chọn SQL Server 2022 phiên bản minor mới nhất.
  7. Chọn Dev/Test for Templates.
  8. Trong phần Settings, nhập tên instance và username/password cho user chính.
  9. Tại Instance configuration, chọn Standard classes và chọn instance class mong muốn. Trong bài viết này, chúng tôi chọn db.m7i.8xlarge.
  10. Trong phần Optimize CPU, chọn Configure the number of vCPUs.
  11. Cấu hình số lượng core mong muốn. Hyperthreading được tắt mặc định đối với các instance từ thế hệ thứ 7 trở lên có hỗ trợ Optimize CPU.

Các thiết lập này được thể hiện trong ảnh chụp màn hình sau.

m7i8xlarge
  1. Trong phần Connectivity, chọn Don’t connect to an EC2 compute resource, kiểu mạng IPv4, và VPC cùng subnet group bạn đã tạo.
  2. Tại Public access, chọn No.
  3. Với VPC security group, chọn Choose existing và chọn security group bạn đã tạo.
  4. Giữ nguyên các thiết lập còn lại ở mặc định.
  5. Chọn Create database và chờ Amazon RDS khởi tạo instance.
  6. Khi instance ở trạng thái Available, chọn tên DB instance. Chọn tab Configuration để xem cấu hình vCPU, Core countThreads per core, như minh họa trong ảnh sau.
m7i8xlarge_post_creation

Tùy chọn 2: Chỉnh sửa một Amazon RDS instance hiện có

Bạn có thể chỉnh sửa một instance hiện có để thay đổi cấu hình Optimize CPU bằng cách sử dụng lệnh AWS CLI sau.

Đoạn code dành cho Windows:

aws rds modify-db-instance ^ --db-instance-identifier <your DB identifier> ^ --db-instance-class <instance class> ^ --processor-features "Name=coreCount,Value=<X>" "Name=threadsPerCore,Value=1" --apply-immediately

Đoạn code dành cho Mac:

aws rds modify-db-instance \ --db-instance-identifier <your DB identifier> \ --db-instance-class <instance class> \ --processor-features "Name=coreCount,Value=<X>" "Name=threadsPerCore,Value=1" --apply-immediately

Tùy chọn 3: Khôi phục một instance

Khi khôi phục một instance từ snapshot, bạn có thể cấu hình Optimize CPU bằng cách sử dụng lệnh AWS CLI sau.

Khôi phục theo thời điểm (Point-in-time restore)

Đoạn code dành cho Windows:

aws rds restore-db-instance-to-point-in-time ^ --source-db-instance-identifier <your source DB identifier> ^ --target-db-instance <target DB identifier> ^ --db-instance-class <instance class> ^ --use-latest-restorable-time ^ --processor-features "Name=coreCount,Value=<X>" "Name=threadsPerCore,Value=1"

Đoạn code dành cho Mac:

aws rds restore-db-instance-to-point-in-time \ --source-db-instance-identifier <your source DB identifier> \ --target-db-instance <target DB identifier> \ --db-instance-class <instance class> \ --use-latest-restorable-time \ --processor-features "Name=coreCount,Value=<X>" "Name=threadsPerCore,Value=1"

Cấu hình kiểm thử hiệu năng

Để giúp bạn hiểu rõ cách Optimize CPU ảnh hưởng đến hiệu năng, chúng tôi đã thực hiện các bài kiểm thử mô phỏng workload OLTP điển hình. Môi trường kiểm thử được thiết lập với các thành phần sau:

  • Instance:
    • db.r7i.12xlarge RDS instance với SQL Server 2022 Enterprise Edition
    • db.r6i.12xlarge RDS instance với SQL Server 2022 Enterprise Edition
    • db.m6i.8xlarge RDS instance với SQL Server 2022 Enterprise Edition
    • db.m7i.8xlarge RDS instance với SQL Server 2022 Enterprise Edition
  • Cấu hình lưu trữ – 2 TiB io2 với 64.000 IOPS
  • Máy client – instance m6i.12xlarge
  • Công cụ kiểm thử – HammerDB với workload dạng TPCC-like

Chúng tôi chọn triển khai single-AZ để loại bỏ độ trễ do replication đồng bộ và tập trung vào các chỉ số hiệu năng thuần túy. Cơ sở dữ liệu kiểm thử gồm 8.000 warehouse, với tùy chọn Use All Warehouses được bật để tối đa hóa mô phỏng workload I/O.

Phương pháp kiểm thử

Việc đánh giá hiệu năng sử dụng tính năng Autopilot của HammerDB, với phương pháp tiếp cận có hệ thống:

  • Tăng dần số lượng virtual user cho đến khi đạt ngưỡng bão hòa hiệu năng
  • Tăng tải người dùng theo cấp số nhân để kiểm thử nhiều kịch bản concurrency
  • Mỗi kịch bản được chạy ba lần để đảm bảo giá trị thống kê
  • Lấy giá trị trung bình để thu được số liệu hiệu năng đáng tin cậy

Nhờ phương pháp này, chúng tôi đã:

  • Xác định được mức giao dịch tối đa bền vững
  • Đo lường hành vi hệ thống dưới các mức tải khác nhau
  • Thiết lập baseline hiệu năng có thể lặp lại và đáng tin cậy
  • Xác thực tính nhất quán hiệu năng giữa các RDS instance khác nhau

Chúng tôi cấu hình chuỗi virtual user như sau: 16, 32, 64, 128, 256, 384, 512, 1024 theo cấp số nhân.

Các bài kiểm thử so sánh db.r6i.12xlarge và db.r7i.12xlarge

Chúng tôi bắt đầu bằng việc so sánh instance class r6i với 48 vCPU (24 core bật hyperthreading) và 24 vCPU (24 core tắt hyperthreading). Cả hai instance đều hỗ trợ tối đa 60.000 IOPS. Biểu đồ dưới đây thể hiện kết quả kiểm thử hiệu năng. Thực tế, instance class r7i cho hiệu năng nhỉnh hơn một chút so với r6i khi số lượng virtual user lên tới 512. Biểu đồ sau minh họa so sánh hiệu năng theo số lượng virtual user khác nhau.

r6i_vs_r7i

Biểu đồ tiếp theo thể hiện mức sử dụng CPU trung bình trong chuỗi kiểm thử giữa các instance. Instance r6i ghi nhận mức CPU tối đa 20%, trong khi instance r7i đạt 40% khi có 1024 virtual user thực thi truy vấn đồng thời. Mức 40% được xem là ngưỡng an toàn đối với hầu hết các hệ thống cơ sở dữ liệu.

r6i_cpu
r7i_cpu

Hình dưới đây cho thấy bài kiểm thử đã sử dụng tối đa IOPS (60.000) mà instance class và kích thước hỗ trợ. Để tìm hiểu thêm về IOPS và throughput được hỗ trợ, hãy tham khảo Amazon EBS optimized instance types.

r6i_iops
r7i_iops

Các bài kiểm thử so sánh db.m6i.8xlarge và db.m7i.8xlarge

Chúng tôi tiếp tục so sánh hiệu năng giữa m6i được cấu hình 32 vCPU và m7i với 16 vCPU. Cả hai loại instance đều có baseline IOPS là 40.000. Kết quả kiểm thử được thể hiện trong biểu đồ sau. Instance class m7i cho hiệu năng tương đương m6i cho tới 512 virtual user đồng thời.

m6i_vs_M7i

Biểu đồ tiếp theo thể hiện mức sử dụng CPU của các instance. Mức CPU trên instance m6i khá thấp, trong khoảng 15–20%, trong khi instance m7i đạt mức tối đa 40%. Với việc có ít hơn 50% CPU so với m6i, việc CPU utilization của m7i cao hơn là điều dễ hiểu, nhưng vẫn thấp hơn ngưỡng an toàn 70–80%.

m6i_cpu
m7i_cpu

Trong mỗi kịch bản kiểm thử, chúng tôi đều sử dụng tối đa IOPS được provisioned mà instance hỗ trợ. Từ các metric, có thể thấy benchmark đã khai thác tới giới hạn 40.000 IOPS của các instance. Biểu đồ dưới đây thể hiện tổng IOPS theo số lượng virtual user khác nhau.

m6i_iops
m7i_iops

Tổng kết kết quả kiểm thử hiệu năng

Kết quả kiểm thử hiệu năng cho RDS for SQL Server trên các instance db.r6i.12xlarge, db.r7i.12xlarge, db.m6i.8xlarge và db.m7i.8xlarge được tóm tắt trong bảng sau.

db.r6i.12xlargedb.r7i.12xlargedb.m6i.8xlargedb.m7i.8xlarge
Số lượng CPU48 vCPU (24 * 2)24 vCPU (24 * 1)32 vCPU (16 * 2)16 vCPU (16 * 1)
TPM327668328791171104169794
Hiệu năng tương đối (%)100100.3410099.23
IOPS/CPU1250250012502500
0.34%-0.77%

Hiệu năng của các instance thế hệ mới (m7i và r7i) với hyperthreading bị tắt và số lượng vCPU giảm 50% là tương đương với các instance thế hệ thứ 6. Từ dữ liệu benchmark, chúng tôi ghi nhận mức CPU utilization tăng khi workload tăng, tuy nhiên vẫn thấp hơn ngưỡng 95th percentile (~80%) mà hầu hết các quản trị viên cơ sở dữ liệu cảm thấy an tâm. Các instance vẫn đạt được số lượng giao dịch trên phút (TPM) tương đương với các instance có số lượng CPU gấp đôi. Chúng tôi khuyến nghị mạnh mẽ bạn kiểm thử workload của mình trên instance class cụ thể trong môi trường non-production trước khi áp dụng thay đổi vào môi trường production.

Lợi ích về chi phí

Tính năng Optimize CPU cho RDS for SQL Server mang lại cho khách hàng cơ hội tiết kiệm chi phí đáng kể mà không làm ảnh hưởng đến hiệu năng. Do chi phí bản quyền SQL Server được tính theo vCPU, việc giảm số lượng vCPU hoạt động có thể trực tiếp làm giảm chi phí, đặc biệt đối với Enterprise Edition. Tính năng này đặc biệt hữu ích cho các môi trường development hoặc test, nơi hiệu năng tối đa không phải lúc nào cũng cần thiết, giúp giảm chi phí từ 25–50%. Đối với workload production, khách hàng có thể “right-size” CPU dựa trên mức sử dụng thực tế mà vẫn đảm bảo tiêu chuẩn hiệu năng. Để tối đa hóa lợi ích, tổ chức nên theo dõi CPU utilization, bắt đầu tối ưu trong môi trường test và triển khai dần vào production. Việc thường xuyên rà soát cấu hình và metric hiệu năng sẽ giúp đạt được hiệu quả chi phí tối ưu trong khi vẫn đáp ứng yêu cầu workload. Bảng dưới đây so sánh giữa cấu hình CPU mặc định và Optimize CPU trên các instance thế hệ thứ 7 được sử dụng cho benchmark.

db.r7i.12xlargeCompute(1)SQL license(2)Windows license(3)Tổng(1)+(2)+(3)Giảm giá
Enterprise48 vCPU$4380.00$13140.00$1611.84$19131.84
Enterprise24 vCPU$4380.00$6570.00$805.92$8755.92−54.2%
db.m7i.8xlarge
Enterprise32 vCPU$2079.04$8760.00$1074.56$11913.60
Enterprise16 vCPU$2079.04$4380.00$537.28$6996.32−41.2%

Dọn dẹp tài nguyên

Để tránh phát sinh chi phí không cần thiết, hãy xóa các instance mà bạn không còn sử dụng. Để dọn dẹp tài nguyên, hãy thực hiện các bước trong Delete the RDS for SQL Server DB instance.

Kết luận

Tính năng Optimize CPU cho Amazon RDS for SQL Server đại diện cho một bước tiến quan trọng trong việc tối ưu tài nguyên cloud, mang lại cho khách hàng sự linh hoạt trong việc tinh chỉnh instance cơ sở dữ liệu để cân bằng giữa hiệu năng và chi phí. Các bài kiểm thử toàn diện của chúng tôi cho thấy việc giảm số lượng vCPU vẫn có thể duy trì hiệu năng tối ưu trong khi giảm đáng kể chi phí bản quyền. Kết quả benchmark cho thấy các workload chạy trên cấu hình CPU giảm vẫn duy trì throughput ổn định, với nhiều kịch bản đạt hơn 100% hiệu năng tương đối dù sử dụng ít vCPU hơn đáng kể. Điều này cho thấy nhiều workload SQL Server có thể vận hành hiệu quả với cấu hình CPU được tối ưu, giúp tổ chức tiết kiệm hàng chục nghìn đô la mỗi năm cho chi phí bản quyền. Khi các tổ chức tiếp tục tối ưu chi tiêu cloud, tính năng Optimize CPU của Amazon RDS cung cấp một công cụ mạnh mẽ để đạt được lợi ích chi phí lớn trong khi vẫn đảm bảo hiệu năng cơ sở dữ liệu đáp ứng yêu cầu kinh doanh.


Tác giả

Barry Ooi

Barry Ooi
Barry là Senior Database Specialist Solution Architect tại AWS. Ông có chuyên môn trong việc thiết kế, xây dựng và triển khai các nền tảng dữ liệu sử dụng các dịch vụ cloud native cho khách hàng trong hành trình trên AWS. Lĩnh vực quan tâm của ông bao gồm phân tích và trực quan hóa dữ liệu.

author name

Sudarshan Roy
Sudarshan là Senior Database Specialist Cloud Solution Architect thuộc tổ chức World Wide AWS Database Services Organization (WWSO). Ông đã dẫn dắt nhiều dự án Database Migration & Modernization quy mô lớn cho khách hàng Enterprise và có niềm đam mê giải quyết các thách thức migration phức tạp khi chuyển workload cơ sở dữ liệu lên AWS Cloud.