Як Linux обробляє сумісний IO диска?


12

Коли сервер Linux обслуговує багато паралельних запитів для читання багатьох різних файлів, це робить:

  1. Перейдіть до File_1, прочитайте весь файл, потім перейдіть до File_2, прочитайте весь файл, потім перейдіть до File_3 тощо тощо

  2. Знайдіть файл File_1, прочитайте його частину (до значення для читання? тощо

Якщо це другий випадок, то сервер робить набагато більше прагнень, ніж потрібно, що значно сповільнить справи. У такому випадку чи є якась настройка?

Відповіді:


14

У дисковому вводу / виводу є річ, яка називається ліфт. Підсистема диска намагається уникнути удару головки диска по тарілках. Він буде повторно замовляти запити вводу / виводу (коли це не заборонено, наприклад, бар'єром), щоб голова рухалася з внутрішньої сторони диска назовні і назад, виконуючи запитувані введення / виведення в дорозі.

Друга річ - злиття запиту вводу / виводу. Якщо за короткий проміжок часу є багато запитів, які отримують доступ до різних частин файлу, підсистема вводу-виводу намагатиметься отримати всі дані за один раз, замість того, щоб видавати кілька непересічних запитів.

Що стосується тюнінгу. Якщо ви автор програми, ви можете багато чого зробити. Ви можете видавати великі, послідовні введення-виведення, коли ви можете та використовувати fsync () et.al. коли вам потрібно бути впевненим, що дані на тарілках.

Якщо ви системний адміністратор, і ви абсолютно знаєте, що запити даних 2-х додатків стрибають, і вони намагаються читати файли послідовно (наприклад, у вас 2-х DVD перекодуються паралельно), то так, збільшення читання голосів повинно допомогти. В іншому випадку вам доведеться ознайомитися зі своїми моделями та розмірами вводу-виводу, врахуйте рівень RAID (якщо такий є) та інші фактори, перш ніж проводити будь-яку настройку. Подивіться, які ваші справжні вузькі місця, перш ніж почати налаштування, може бути важко здогадатися, що насправді обмежує вашу систему.


5

У Linux ви можете визначити власний алгоритм планування, у вас є різні можливості, я повинен був зробити його в школі, і ця стаття від Red Hat мені дуже допомогла. Хоча спеціально для Red Hat ви можете знайти цих планувальників практично в будь-якому дистрибутиві Linux.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.