Linux xử lý đồng thời IO đĩa như thế nào?


12

Khi một máy chủ Linux đang phục vụ nhiều yêu cầu đồng thời để đọc nhiều tệp khác nhau, thì nó:

  1. Tìm đến File_1, đọc toàn bộ tệp, sau đó tìm đến File_2, đọc toàn bộ tệp, sau đó tìm đến File_3, v.v.

  2. Tìm kiếm File_1, đọc một phần của nó (tối đa giá trị đọc?), Sau đó tìm đến File_2, đọc một phần của nó, sau đó tìm lại File_1 nơi nó đã dừng lại, đọc thêm về nó, sau đó tìm đến File_3, v.v. Vân vân

Nếu đó là trường hợp thứ 2, thì máy chủ đang thực hiện nhiều tìm kiếm hơn mức cần thiết, điều này sẽ làm mọi thứ chậm lại đáng kể. Trong trường hợp đó tôi có thể điều chỉnh gì không?

Câu trả lời:


14

Trong đĩa I / O có một thứ gọi là thang máy. Subytem đĩa cố gắng tránh đập đầu đĩa trên tất cả các đĩa. Nó sẽ sắp xếp lại các yêu cầu I / O (khi không bị cấm, ví dụ như bởi một rào cản) để đầu sẽ di chuyển từ bên trong đĩa ra bên ngoài và quay lại, thực hiện I / O được yêu cầu trên đường đi.

Điều thứ hai là hợp nhất yêu cầu I / O. Nếu có nhiều yêu cầu trong một cửa sổ thời gian ngắn, truy cập các phần khác nhau của tệp, hệ thống con I / O sẽ thử và nhận tất cả dữ liệu trong một lần, thay vì đưa ra một số yêu cầu rời rạc.

Theo như điều chỉnh đi. Nếu bạn là người viết ứng dụng, có rất nhiều thứ bạn có thể làm. Bạn có thể phát hành I / O lớn, tuần tự, bất cứ khi nào bạn có thể và sử dụng fsync () et.al. khi bạn cần chắc chắn rằng dữ liệu nằm trên đĩa.

Nếu bạn là một sysadmin và bạn hoàn toàn biết rằng các yêu cầu dữ liệu của 2 ứng dụng nhảy vọt và họ cố gắng đọc các tệp tuần tự (ví dụ: bạn có 2 DVD được chuyển mã song song), thì có, việc đọc tăng sẽ giúp ích. Nếu không, bạn cần xem qua các mẫu và kích thước I / O của mình, xem xét mức độ RAID (nếu có) và các yếu tố khác, trước khi thực hiện bất kỳ điều chỉnh nào. Hãy xem các tắc nghẽn thực sự của bạn là gì, trước khi bạn bắt đầu điều chỉnh, có thể khó đoán, điều gì thực sự hạn chế hệ thống của bạn.


5

Trong linux bạn có thể định nghĩa thuật toán lập lịch trình của riêng bạn, bạn có khả năng khác nhau, tôi đã phải làm một mảnh trên đó ở trường và đây bài báo từ Red Hat đã giúp tôi rất nhiều. Mặc dù nó dành riêng cho Red Hat, bạn có thể tìm thấy các bộ lập lịch này trong hầu như bất kỳ bản phân phối linux nào.

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.