Làm thế nào để ionice hoạt động với nhiều ổ đĩa?


7

Tôi hiểu làm thế nào ionicecó thể giúp bạn khi bạn có nhiều quy trình yêu cầu quyền truy cập vào cùng một tài nguyên đĩa, nhưng nó hoạt động như thế nào khi bạn có nhiều đĩa?

Ví dụ, bạn có một rsyncdữ liệu hoạt động di chuyển từ ổ A -> Ổ B , và một rsyncdữ liệu di chuyển từ ổ C -> ổ D .

Về lý thuyết, vì chúng không cạnh tranh tài nguyên, nên ionicemột trong những rsyncquy trình này không nên thay đổi thông lượng của nó. Đây có phải là cách nó hoạt động, hoặc nó sẽ vẫn ảnh hưởng đến hiệu suất?

Ngoài ra, có một số "giới hạn trên" trên tổng số I / O mà một người có thể gặp trên hệ thống linux không phụ thuộc vào tốc độ ổ đĩa không? Giống như nếu bạn kết nối 100 ổ SSD , đến một lúc nào đó, hệ điều hành có bị tắc nghẽn ngoài tốc độ ổ đĩa không?

Câu trả lời:


1

Trên Linux, các ổ đĩa được lên lịch độc lập với nhau. Bạn thậm chí có thể đặt thuật toán lập lịch IO khác nhau cho các ổ đĩa khác nhau trên cùng một hệ thống, bằng cách ghi vào /sys/block/<device>/queue/iosched.

Băng thông giữa bộ nhớ và các đĩa thực sự có thể trở thành nút cổ chai. Đây là lý do tại sao RAID phần cứng có ý nghĩa: dữ liệu được gửi đến bộ điều khiển RAID một lần, trái ngược với từng đĩa riêng biệt. Bạn cũng có thể tăng băng thông này bằng cách gắn 100 ổ SSD đó vào nhiều máy tính, phân phối tải giữa chúng.

Tôi không chắc chắn làm thế nào bộ lập lịch IO tính đến điều này, nhưng tôi không nghĩ nó làm được.

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.