Tôi muốn biết về IOPS (I / O mỗi giây) và cách nó ảnh hưởng đến hoạt động DB CRUD


8

Tôi muốn có một máy chủ chuyên dụng cho Cơ sở dữ liệu của tôi (MySQL) chạy InnoDB Engine. Có tùy chọn này trong khả năng của InnoDB mà bạn có thể xác định IOPS trong đó. Giả sử tôi có ổ cứng SATA 72K-RPM cho phép 100 IOPS. Điều đó có nghĩa là DB của tôi chỉ có thể chạy 100 truy vấn SQL đồng thời mỗi giây hay nó có nghĩa là 100 lần đọc hoặc ghi trong 1 giây? Làm thế nào một DB có thể xử lý 3000 truy vấn mỗi giây được khởi chạy trên Phần cứng như vậy? Tôi hơi bối rối vì vậy hãy giải thích cho tôi. Tôi muốn nhận được hơn 200 thực thi truy vấn trên máy chủ chuyên dụng của mình.

Câu trả lời:


10

IOPS của ổ cứng cho bạn biết có bao nhiêu thao tác I / O mà ổ đĩa cụ thể có thể thực hiện mỗi giây. Vì các lần đọc ngẫu nhiên, ghi ngẫu nhiên, đọc tuần tự và ghi tuần tự có các đặc tính hiệu suất khác nhau, nếu bạn đang xem một số duy nhất, điều đó ngụ ý rằng đây là trung bình có trọng số của bốn số này đại diện cho khối lượng công việc. Khối lượng công việc đó có thể hoặc không giống với khối lượng công việc mà cơ sở dữ liệu thực sự sẽ thực hiện để hệ thống của bạn có thể nhận được nhiều hơn hoặc ít hoạt động hơn mỗi giây.

Một truy vấn SQL sẽ giả sử nó là I / O vật lý (nhiều truy vấn không cần thực hiện bất kỳ I / O nào vì chúng chỉ đơn giản là đọc từ dữ liệu đã có trong bộ nhớ của cơ sở dữ liệu hoặc trong bộ đệm của hệ thống tệp hoặc trong bộ đệm SAN), có xu hướng để thực hiện nhiều thao tác I / O. Nếu các truy vấn của bạn thực sự đang thực hiện I / O vật lý, một truy vấn duy nhất có thể dễ dàng thực hiện 100 thao tác I / O mỗi giây. Bạn có khả năng có thể có 100 truy vấn chạy đồng thời mỗi truy vấn chỉ thực hiện 1 thao tác I / O vật lý mỗi giây nhưng điều đó có thể có nghĩa là tất cả 100 truy vấn sẽ mất một khoảng thời gian không thể chấp nhận để trả về.

Trên thực tế, nếu bạn cần xử lý 3000 truy vấn mỗi giây, bạn sẽ cần đảm bảo rằng phần lớn các truy vấn của bạn không cần thực hiện I / O vật lý bằng cách đảm bảo rằng dữ liệu họ cần được lưu trữ (tốt nhất là cơ sở dữ liệu). Và bạn sẽ cần trải I / O trên một số lượng ổ đĩa tương đối lớn (với cấu hình RAID phù hợp) để tăng tổng IOPS mà hệ thống có thể thực hiện. Loại kế hoạch dung lượng này sẽ đòi hỏi sự hiểu biết hợp lý về ứng dụng, dữ liệu của bạn, bao nhiêu I / O mỗi truy vấn có thể thực sự cần, v.v. Và bạn có thể sẽ cần phải cân bằng chi phí so với hiệu suất-- thêm bộ nhớ hoặc thêm ổ đĩa hoặc thay đổi cấu hình RAID sẽ liên quan đến sự đánh đổi khác nhau giữa chi phí, hiệu suất và không gian có sẵn sẽ phải được xem xét.

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.