xg-scale

diff 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 diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/xen/io.tex	Tue Jul 01 16:16:44 2008 +0300
     1.3 @@ -0,0 +1,76 @@
     1.4 +\section{Приоритезация ввода/вывода в Xen}
     1.5 +
     1.6 +\subsection{Приоритеты для использования Disk I/O}
     1.7 +\subsubsection{ionice}
     1.8 +С выходом CFQ v3 в Linux 2.6.13 появилась возможность выставлять приоритеты использования дисковой подсистемы для процессов, чего раньше так не хватало. Подобно утилите nice для назначение приоритетов использования процессора появилась утилита ionice. 
     1.9 +
    1.10 +Синтаксис команды прост:
    1.11 +
    1.12 +\begin{verbatim}
    1.13 +ionice -c класс -n приоритет -p PID
    1.14 +\end{verbatim}
    1.15 +
    1.16 +Класс:
    1.17 +
    1.18 +\begin{itemize}
    1.19 +\item  3, Idle — Получает приоритет на использование жесткого диска только когда другие программы ничего не пишут. Приоритеты не используются.
    1.20 +\item  2, Best Effort — Класс по умолчанию. Доступные приоритеты [0-7].
    1.21 +\item  1, Real Time — Даёт преимущественный доступ к диску процессу, несмотря на другие процессы. Доступные приоритеты [0-7].
    1.22 +\end{itemize}
    1.23 +
    1.24 +\subsubsection{Приоритеты гостевых доменов}
    1.25 +Теперь вернемся к самому Xen. 
    1.26 +После запуска гостевых систем по \textit{ps aux} можно видеть в квадратных скобках появившиеся драйвера блочных устройств xvd, после которых указан 
    1.27 +ID гостевого домена. Приоритеты для этих процессов можно устанавливать
    1.28 +с помощью \textit{ionice}, точно также как и для всех остальных.
    1.29 +
    1.30 +\subsubsection{Эксперименты}
    1.31 +Проведем 2 эксперимента для операций чтения и записи.
    1.32 +
    1.33 +Выставим одной гостевой системе класс \textit{Real Time}, а второй — \textit{Idle}.
    1.34 +
    1.35 +Запустим одновременно \textit{dd} на обеих системах для записи небольшого файла. Конечно слово «одновременно» здесь весьма условно.
    1.36 +Для повышения точности лучше провести несколько измерений.
    1.37 +
    1.38 +\begin{verbatim}
    1.39 +%# dd if=/dev/zero of=/root/file.txt bs=1024 count=10240000
    1.40 +\end{verbatim}
    1.41 +
    1.42 +В результате средняя скорость в первой гостевой системе -- 40Mb/sec, во второй -- 20Mb/sec.
    1.43 +
    1.44 +Другим экспериментом является операция тестирования скорости чтения диска с помощью \textit{hdparm}:
    1.45 +
    1.46 +\begin{verbatim}
    1.47 +%# hdparm -t /dev/xvda
    1.48 +\end{verbatim}
    1.49 +
    1.50 +В результате в первом гостевом домене скорость — 25Mb/sec, во втором — 2Mb/sec.
    1.51 +
    1.52 +\subsubsection{Заключение}
    1.53 +Недостатком данного решения является отсутствие соответствующих опций в конфигурационном файле гостевых доменов Xen,
    1.54 +что означает, что при каждом старте домена необходимо устанавливаеть его приоритет заново.
    1.55 +
    1.56 +Следует обратить внимание, что данная возможность доступна только для CFQ.
    1.57 +
    1.58 +Проверьте, какой способ приоритезации используется:
    1.59 +
    1.60 +\begin{verbatim}
    1.61 +cat /sys/block/ИМЯ_ДИСКА/queue/scheduler
    1.62 +\end{verbatim}
    1.63 +
    1.64 +Активный sheduler должен быть в квадратных скобках.
    1.65 +Например:
    1.66 +
    1.67 +\begin{verbatim}
    1.68 +$ cat /sys/block/sda/queue/scheduler 
    1.69 +noop anticipatory deadline [cfq]
    1.70 +\end{verbatim}
    1.71 +
    1.72 +\subsection{Дополнительная информация}
    1.73 +\begin{itemize}
    1.74 +\item  Which is the fairest I/O scheduler of them all? (англ.)
    1.75 +\item  Планировщики ввода/вывода в Linux
    1.76 +\item  Choosing an I/O Scheduler for Red Hat® Enterprise Linux® 4 and the 2.6 Kernel (англ.) или на русском: Выбор планировщика ввода/вывода в Red Hat® Enterprise Linux® 4 и ядре версии 2.6
    1.77 +\item  CFQ IO Schedule и /proc/sys/{\dots} Или как уменьшить тормоза при интенсивной работе с диском
    1.78 +\end{itemize}
    1.79 +