xg-scale
view xen/io.tex @ 0:4730a0d07d88
Исходники курса после первого прочтения.
Правки (которых должно быть много),
ещё пока не вносились.
Правки (которых должно быть много),
ещё пока не вносились.
author | Igor Chubin <igor@chub.in> |
---|---|
date | Tue Jul 01 16:16:44 2008 +0300 (2008-07-01) |
parents | |
children | 75853b740e5a |
line source
1 \section{Приоритезация ввода/вывода в Xen}
3 \subsection{Приоритеты для использования Disk I/O}
4 \subsubsection{ionice}
5 С выходом CFQ v3 в Linux 2.6.13 появилась возможность выставлять приоритеты использования дисковой подсистемы для процессов, чего раньше так не хватало. Подобно утилите nice для назначение приоритетов использования процессора появилась утилита ionice.
7 Синтаксис команды прост:
9 \begin{verbatim}
10 ionice -c класс -n приоритет -p PID
11 \end{verbatim}
13 Класс:
15 \begin{itemize}
16 \item 3, Idle — Получает приоритет на использование жесткого диска только когда другие программы ничего не пишут. Приоритеты не используются.
17 \item 2, Best Effort — Класс по умолчанию. Доступные приоритеты [0-7].
18 \item 1, Real Time — Даёт преимущественный доступ к диску процессу, несмотря на другие процессы. Доступные приоритеты [0-7].
19 \end{itemize}
21 \subsubsection{Приоритеты гостевых доменов}
22 Теперь вернемся к самому Xen.
23 После запуска гостевых систем по \textit{ps aux} можно видеть в квадратных скобках появившиеся драйвера блочных устройств xvd, после которых указан
24 ID гостевого домена. Приоритеты для этих процессов можно устанавливать
25 с помощью \textit{ionice}, точно также как и для всех остальных.
27 \subsubsection{Эксперименты}
28 Проведем 2 эксперимента для операций чтения и записи.
30 Выставим одной гостевой системе класс \textit{Real Time}, а второй — \textit{Idle}.
32 Запустим одновременно \textit{dd} на обеих системах для записи небольшого файла. Конечно слово «одновременно» здесь весьма условно.
33 Для повышения точности лучше провести несколько измерений.
35 \begin{verbatim}
36 %# dd if=/dev/zero of=/root/file.txt bs=1024 count=10240000
37 \end{verbatim}
39 В результате средняя скорость в первой гостевой системе -- 40Mb/sec, во второй -- 20Mb/sec.
41 Другим экспериментом является операция тестирования скорости чтения диска с помощью \textit{hdparm}:
43 \begin{verbatim}
44 %# hdparm -t /dev/xvda
45 \end{verbatim}
47 В результате в первом гостевом домене скорость — 25Mb/sec, во втором — 2Mb/sec.
49 \subsubsection{Заключение}
50 Недостатком данного решения является отсутствие соответствующих опций в конфигурационном файле гостевых доменов Xen,
51 что означает, что при каждом старте домена необходимо устанавливаеть его приоритет заново.
53 Следует обратить внимание, что данная возможность доступна только для CFQ.
55 Проверьте, какой способ приоритезации используется:
57 \begin{verbatim}
58 cat /sys/block/ИМЯ_ДИСКА/queue/scheduler
59 \end{verbatim}
61 Активный sheduler должен быть в квадратных скобках.
62 Например:
64 \begin{verbatim}
65 $ cat /sys/block/sda/queue/scheduler
66 noop anticipatory deadline [cfq]
67 \end{verbatim}
69 \subsection{Дополнительная информация}
70 \begin{itemize}
71 \item Which is the fairest I/O scheduler of them all? (англ.)
72 \item Планировщики ввода/вывода в Linux
73 \item Choosing an I/O Scheduler for Red Hat® Enterprise Linux® 4 and the 2.6 Kernel (англ.) или на русском: Выбор планировщика ввода/вывода в Red Hat® Enterprise Linux® 4 и ядре версии 2.6
74 \item CFQ IO Schedule и /proc/sys/{\dots} Или как уменьшить тормоза при интенсивной работе с диском
75 \end{itemize}