Nguyên tắc tôi sử dụng cho đĩa IO là:
75 IOP trên mỗi trục chính cho SATA.
150 IOP trên mỗi trục chính cho FC / SAS
1500 IOP trên mỗi trục chính cho SSD.
Cũng như IOP trên mỗi mảng cũng xem xét IOP trên mỗi terabyte. Không có gì lạ khi kết thúc với tỷ lệ IOP trên mỗi TB rất tệ nếu thực hiện SATA + RAID6. Điều này có vẻ không quá nhiều, nhưng bạn sẽ thường kết thúc với việc ai đó phát hiện ra 'không gian trống' trên một mảng và muốn sử dụng nó. Mọi người thường mua hợp đồng biểu diễn và bỏ qua iops, khi thực sự điều ngược lại là đúng trong hầu hết các hệ thống doanh nghiệp.
Sau đó thêm chi phí phạt ghi cho RAID:
- 2 cho RAID1, RAID1 + 0
- 4 cho RAID5 (hoặc 4)
- 6 cho RAID6.
Viết hình phạt có thể được giảm nhẹ một phần bộ đệm lớn viết tốt và trong trường hợp đúng. Nếu bạn có nhiều IO viết tuần tự (như nhật ký DB), bạn có thể giảm đáng kể các hình phạt ghi trên RAID 5 và 6. Nếu bạn có thể viết một dải đầy đủ (ví dụ: một khối trên mỗi trục chính), bạn không cần phải đọc để tính chẵn lẻ.
Giả sử bộ 8 + 2 RAID 6. Trong hoạt động bình thường cho một lần ghi IO, bạn cần phải:
- Đọc khối 'cập nhật'.
- Đọc khối chẵn lẻ đầu tiên
- Đọc khối chẵn lẻ thứ hai
- Tính toán lại tính chẵn lẻ.
- viết tất cả 3. (6 IO).
Với một ghi đầy đủ được lưu trong bộ nhớ cache - ví dụ: 8 khối 'liên tiếp' kích thước của dải RAID, bạn có thể tính được tính chẵn lẻ trên toàn bộ lô mà không cần phải đọc. Vì vậy, bạn chỉ cần 10 lần ghi - một cho mỗi dữ liệu và hai lần tương đương.
Điều này làm cho hình phạt viết của bạn 1.2.
Bạn cũng cần lưu ý rằng viết IO rất dễ lưu trữ - bạn không cần phải đưa nó vào đĩa ngay lập tức. Nó hoạt động trong một ràng buộc thời gian mềm - miễn là trung bình ghi của bạn không vượt quá tốc độ trục chính, tất cả sẽ có thể chạy ở 'tốc độ bộ đệm'.
Mặt khác, đọc IO, bị hạn chế về thời gian - bạn không thể hoàn thành việc đọc cho đến khi dữ liệu được tìm nạp. Các thuật toán đọc bộ đệm và bộ đệm đọc trở nên quan trọng tại thời điểm đó - các mẫu đọc có thể dự đoán được (ví dụ như tuần tự, khi bạn nhận được từ bản sao lưu) có thể được dự đoán và tìm nạp trước, nhưng các mẫu đọc ngẫu nhiên thì không thể.
Đối với cơ sở dữ liệu, tôi thường đề nghị bạn giả sử rằng:
hầu hết IO 'cơ sở dữ liệu của bạn là đọc ngẫu nhiên. (ví dụ xấu cho truy cập ngẫu nhiên). Nếu bạn có thể đủ khả năng chi trả, RAID1 + 0 là tốt - bởi vì các đĩa được nhân đôi cung cấp hai nguồn đọc.
hầu hết IO 'log' của bạn là ghi tuần tự. (ví dụ: tốt cho bộ nhớ đệm và trái với những gì nhiều DBA sẽ đề xuất, bạn có thể muốn RAID50 thay vì RAID10).
Tỷ lệ của hai là khó nói. Phụ thuộc vào những gì DB làm.
Bởi vì IO đọc ngẫu nhiên là trường hợp xấu nhất đối với bộ nhớ đệm, đó là nơi SSD thực sự thuộc về riêng nó - rất nhiều nhà sản xuất không bận tâm đến bộ nhớ cache SSD vì dù sao nó cũng có cùng tốc độ. Vì vậy, đặc biệt đối với những thứ như cơ sở dữ liệu và chỉ mục tạm thời, SSD mang lại lợi tức đầu tư tốt.