Amazon RDS: Yêu cầu IO là gì?


9

Tôi có một ví dụ RDS khiến tôi mất rất nhiều tiền. Từ hoạt động tài khoản của tôi trên amazon tôi thấy rằng ví dụ này đã có khoảng 800.000.000 yêu cầu IO trong 7 ngày qua.

Để cung cấp cho bạn một góc nhìn nhỏ, ứng dụng của tôi chỉ nhận được khoảng 6.000 lượt truy cập mỗi ngày và nó không tạo ra nhiều kết nối cơ sở dữ liệu.

Vậy, chính xác Yêu cầu IO là gì và tại sao con số đó lại cao đến mức khó tin? Tôi sẵn sàng làm bất cứ điều gì cần thiết cho ứng dụng của mình để giảm chi phí nếu cần thiết, nhưng tôi không chắc điều gì đang thực sự xảy ra.

Tôi đánh giá cao suy nghĩ của bạn.


Bạn đã tìm thấy một giải pháp trong trường hợp của bạn?
Nhấp vào Upvote

Câu trả lời:


6

À, Dịch vụ web Amazon. Một trong những moneysinks lớn nhất hiện có. Rất tốt, nhưng không phải lúc nào cũng rẻ. Trên thực tế, hầu như không bao giờ rẻ, và luôn khó ước tính chi phí.

Một yêu cầu IO là một hoạt động đĩa. Dù là đọc hay viết, về cơ bản bạn sẽ bị tính phí với bao nhiêu dữ liệu bạn nhận được từ hệ thống của họ. Thật điên rồ.

Bạn có thể ước tính các Yêu cầu IO bạn đang thực hiện, bằng cách xem i điều chỉnh.

800.000.000 IOrequest trong 7 ngày .. Đó là ~ = 1300 IOPS. Ồ Đó là một số hiệu suất xấu xa.

Ví dụ: cơ sở dữ liệu trang web cỡ trung bình có thể có kích thước 100 GB và dự kiến ​​trung bình 100 I / O mỗi giây trong suốt một tháng. Điều này sẽ chuyển thành 10 đô la mỗi tháng cho chi phí lưu trữ (100 GB x 0,10 đô la / tháng) và khoảng 26 đô la mỗi tháng cho chi phí yêu cầu (~ 2,6 triệu giây / tháng x 100 I / O mỗi giây * 0,10 đô la mỗi triệu I / O).

Từ http://aws.amazon.com/ebs/ khoảng 90% đường xuống trang

Nếu bạn thực sự muốn giảm những gì điều này làm bạn tốn kém, có lẽ đã đến lúc xem xét liệu RDS có thực sự phù hợp nhất với ngân sách ứng dụng và dự án của bạn hay không.

Nếu bạn chỉ có 6k lượt truy cập mỗi ngày, bạn có thể làm tốt hơn về chi phí và hiệu suất với một máy chủ chuyên dụng (tốt nhất là 2 trong số đó, một cho DB, một cho các dịch vụ web). Thực sự khó khăn hơn một chút khi thực hiện cuộc gọi đó vì bạn chưa nói quá nhiều về ứng dụng của mình.


3
Khi tôi lần đầu tiên thử nghiệm dịch vụ SimpleDB của AWS, giống như MongoDB, tôi đã kiếm được một hóa đơn trị giá 50 đô la vào một buổi chiều. Thật tiện lợi, nhưng hầu như không bao giờ rẻ.
Tom O'Connor

Tôi đoán EBS không còn có thể là lý do tôi thấy chi phí này trong hóa đơn của mình, "I / O được bao gồm trong giá của các tập, vì vậy bạn chỉ trả cho mỗi GB dung lượng lưu trữ mà bạn cung cấp." (từ trang định giá )?
hayd

Thở dài, hóa ra nó vẫn có sẵn ở thế hệ trước !
hayd

6

Tôi có một ví dụ RDS khiến tôi mất rất nhiều tiền.

"Dịch vụ đám mây" không có nghĩa là công cụ đó sẽ khiến bạn tốn một xu. Về cơ bản, một yêu cầu I / O là bất cứ điều gì (tức là cơ sở dữ liệu hoặc trang chỉ mục) cần được tìm nạp từ đĩa. Nếu bạn có một cơ sở dữ liệu lớn và các truy vấn sử dụng quét toàn bộ bảng, điều này không có nghĩa là đáng ngạc nhiên. Bạn có thể cân nhắc tìm kiếm các truy vấn bằng cách sử dụng các cột không được lập chỉ mục để lọc bằng cách cho phép tùy chọn ghi nhật ký các truy vấn "không liên kết" vào nhật ký chậm của MySQL và thêm chỉ mục cho các cột thích hợp. Vì bạn không có tùy chọn chỉnh sửa trực tiếp tệp cấu hình, hãy sử dụng cấu hình nhóm tham số RDS để đặt log-queries-not-using-indexesvà truy vấn mysql.slow_logbảng cho các mục nhật ký.

Ngoài ra, hãy xem xét việc chạy tập lệnh mồi điều chỉnh MySQL từ phiên bản AWS của bạn so với phiên bản cơ sở dữ liệu để phân tích hiệu suất chung để xem liệu một phiên bản lớn hơn có giúp ích gì không do số lượng bộ nhớ lớn hơn có sẵn để lưu vào bộ đệm, giảm tải cho đĩa. Kịch bản đánh giá một số tham số cấu hình và bộ đếm hiệu suất để cung cấp một số thông tin về các tắc nghẽn có thể có và cung cấp một số khuyến nghị chung.


5
Thật là một điều đáng kinh ngạc khi con người chúng ta dễ dàng vô tình khiến máy tính thực hiện khối lượng công việc khổng lồ một cách vô lý. Bạn luôn phải quay lại và đo lường để đảm bảo rằng bạn đã không vô tình ép buộc máy làm điều gì đó ngu ngốc đến mức đáng kinh ngạc. (Tôi đã từng cải thiện hiệu suất của một hệ thống trong thế giới thực được triển khai thêm 40% trong vòng chưa đầy mười phút (không tính thời gian để thiết lập một bản dựng được định hình) bằng cách thêm một &vào mã của nó. Rõ ràng, không ai từng cấu hình nó.)
David Schwartz
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.