Làm cách nào tôi có thể xác định số lượng IOP tôi cần cho cơ sở dữ liệu AWS RDS của mình?


14

Tôi đang di chuyển một phần của cơ sở dữ liệu mysql vào AWS. Dữ liệu trong câu hỏi là ghi 99% và mỗi hàng có khoảng 1k trường varchar, datetime và 4 ints.

Tôi ước tính rằng chúng tôi sẽ cần từ 20-25k hồ sơ được chèn / giờ trong thời gian cao điểm.

Tôi đã chạy iostat -h trên cơ sở dữ liệu hiện tại và nó báo cáo khoảng 40 tps.

Làm cách nào để biết được loại IOPS nào tôi sẽ cần?

Câu trả lời:


11

Bạn sẽ phải kiểm tra nó.

Bạn có thể thực hiện một số tính toán ngược của phong bì để tính gần đúng số lượng I / O trên mỗi lần chèn, nhân nó với số lượng giao dịch mỗi giây, thêm vào một số phòng đệm, v.v., nhưng việc kiểm tra nó sẽ dễ dàng hơn nhiều.

Cách dễ nhất để làm là phân bổ dự đoán tốt nhất, sau đó quay lại và tăng hoặc giảm để phù hợp với thử nghiệm trong thế giới thực của bạn. Đây là một trong những điều xa xỉ khi sử dụng môi trường dựa trên đám mây, thay đổi phần cứng có chi phí vốn thấp và những thay đổi như vậy thường chỉ yêu cầu cập nhật cấu hình. Với âm lượng EBS, bạn không thể tăng số lượng IOPS, bạn cũng phải tăng kích thước của âm lượng 1 . Bạn luôn có thể tạo một tập mới và sao chép dữ liệu của bạn. Sẽ có một số thời gian chết nhưng nếu dữ liệu của bạn không lớn thì nó không nên là một bản sao thô.

Đây là một dự đoán về số lượng I / O cần thiết. Một lần nữa, đó chỉ là dự đoán vì các chi tiết cụ thể phụ thuộc vào số lượng chỉ mục và liệu lưu lượng truy cập của bạn sẽ trơn tru hay tăng đột biến. Với 25K tx / giờ bạn đã có ~ 7 tx / giây. Kích thước của mỗi hàng không liên quan đặc biệt vì nó nhỏ hơn kích thước của một I / O (4K). Mỗi giao dịch sẽ thực hiện ở đâu đó trong khoảng 1-5 IOP (chèn chính cộng với một vài lần chèn cây chỉ mục), vì vậy hãy giả sử ~ 35 / s.

Tôi nói bắt đầu với mức tối thiểu là 100 IOPS và tăng quy mô nếu cần thiết.


1
BTW, như một cách tiếp theo: chúng tôi thiết lập cơ sở dữ liệu 300 GB và điều đó có nghĩa là tối thiểu 1000 IOPS. Sau khoảng 6 tháng sống trên RDS, chúng tôi đã có 0 sự cố do sự cố I / O. Có thể là quá mức cần thiết, nhưng càng gần lửa & quên càng tốt.
chris

Dựa trên tải của bạn - bạn không cần IOP được cung cấp. Trừ khi bạn sẽ cần vượt quá 2500-3500 tổng số IOP, bộ nhớ tiêu chuẩn sẽ có dung lượng 300 GB (vì phân loại EBS).
Ross

7

Tôi đã sử dụng công cụ iostat cơ bản (iostat -h) để có ý tưởng về số lượng iops tôi hiện đang sử dụng. Từ đó tôi đã ngoại suy số tiền tôi sẽ sử dụng nếu tôi dưới 4 lần tải đó và đi với số tiền đó. Đối với tôi, nó đã hoạt động tới 780 IOPS vì vậy tôi đã sử dụng 800 IOPS.


iostat -h đang báo cáo khoảng 40 tps, vậy có tương ứng với 40 iops không? Điều đó sẽ phù hợp với những con số mà @sehrope tính toán.
chris

1
Đúng rồi.
Đánh dấu

0

Tôi sử dụng i điều chỉnh để xác định số lượng IOPS mà ứng dụng của tôi đang thực hiện. iostat báo cáo điều này như là tps. KB / t giúp bạn xác định xem số tiền chuyển có nhỏ hơn kích thước khối, 256 KiB hay không. Tôi chạy iostat với thời gian chờ một giây, tức là iostat -w 1.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.