xg-scale
diff xen/io.tex @ 1:6f6e0f706b86
Added tag v0.1 for changeset 4730a0d07d88
author | Igor Chubin <igor@chub.in> |
---|---|
date | Tue Jul 01 16:28:00 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:28:00 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 +