Неполадки, связанные с диском или памятью
В то время как большой фрагмент оперативной памяти используется для буферизации файлов, часть данных программы может принудительно выгружаться из памяти на диск. Для временного хранения таких данных служит системное пространство подкачки.
vmstat -s >temp.file # данные за все время до запуска команды
time $1 # тестируемая команда
vmstat -s >>temp.file # данные за все время до конца выполнения
grep "pagi.*ins" temp.file >>results # выбираются только те данные,
grep "pagi.*outs" temp.file >>results # которые необходимыСценарий vmstatit в сжатом виде выдает основную информацию из отчета команды vmstat -s, содержащего сведения, накопленные с момента запуска системы.
# vmstatit "cp file1 file2" 2>resultsфактическое 0м0,03с
польз. 0м0,01с
сист. 0м0,02с
2323 страниц загружено из пространства подкачки
2323 страниц загружено из пространства подкачки
4850 страниц выгружено в пространство подкачки
4850 страниц выгружено в пространство подкачкиvmstat -s >temp.file
time $1
vmstat -s >>temp.file
echo "Стандартный ввод:" >>results
grep "^[ 0-9]*page ins" temp.file >>results
echo "Стандартный вывод:" >>results
grep "^[ 0-9]*page outs" temp.file >>results
echo "Вывод пространства подкачки:" >>results
grep "pagi.*outs" temp.file >>results
echo "Ввод пространства подкачки:" >>results
grep "pagi.*ins" temp.file >>resultsфактическое 0м2,09с
пользов. 0м0,03с
сист. 0м0,74с
Обычный ввод:
46416 страниц загружено
47132 страниц загружено
Обычный вывод:
146483 страниц выгружено
147012 страниц выгружено
Вывод в пространство подкачки:
4854 страниц выгружено в пространство подкачки
4854 страниц выгружено в пространство подкачки
Ввод из пространства подкачки:
2527 страниц загружено из пространства подкачки
2527 страниц загружено из пространства подкачкиВывод команды time подтверждает предположение о том, что производительность программы ограничена ресурсами ввода-вывода. Увеличение количества загруженных страниц указывает на число операций ввода-вывода, необходимое для выполнения команды cp. Увеличение количества выгруженных страниц означает, что файл достаточно велик для того, чтобы при его обработке ожидающие выгрузки страницы (возможно, не относящиеся к этому файлу) принудительно выгружались на диск. Сохранение общего количества операций ввода-вывода, связанных с подкачкой, подтверждает, что команда cp не создает очень больших структур данных, способных исчерпать ресурсы памяти системы, на которой проводится эксперимент.
Порядок, в котором эта версия сценария vmstatit выдает информацию об операциях ввода-вывода, выбран не случайно. Обычная программа сначала считывает свои входные данные, а затем записывает выходные. Подкачка же обычно начинается с выгрузки ненужной страницы из рабочего сегмента. Эта страница загружается обратно в память только в том случае, если программа пытается обратиться к ней. То обстоятельство, что в тестируемой системе количество страниц, выгруженных в пространство подкачки с момента загрузки, почти вдвое превышает количество страниц, загруженных в пространство подкачки за то же время, означает, что некоторые программы, выполняемые в системе, помещают в память свои данные и больше не обращаются к ним. Дополнительная информация приведена в разделе Программы с ограничением по памяти. Обратитесь также к разделу Быстродействие памяти.
# cc -c ed.c
# vmstatit "cc -c ed.c" 2>resultsфактическое 0м7,76с
польз. 0м7,44с
сист. 0м0,15с
Обычный ввод:
57192 страниц загружено
57192 страниц загружено
Обычный вывод:
165516 страниц выгружено
165553 страниц выгружено
Вывод в пространство подкачки:
10846 страниц выгружено в пространство подкачки
10846 страниц выгружено в пространство подкачки
Ввод из пространства подкачки:
6409 страниц загружено из пространства подкачки
6409 страниц загружено из пространства подкачки# rmss -c 8фактическое 0м9,87с
пользов. 0м7,70с
сист. 0м0,18с
Обычный ввод:
57625 страниц загружено
57809 страниц загружено
Обычный вывод:
165811 страниц выгружено
165882 страниц выгружено
Вывод в пространство подкачки:
11010 страниц выгружено в пространство подкачки
11061 страниц выгружено в пространство подкачки
Ввод из пространства подкачки:
6623 страниц загружено из пространства подкачки
6701 страниц загружено из пространства подкачкиПоявились следующие признаки того, что производительность программы ограничена скоростью ввода-вывода:
- Фактическое время выполнения больше, чем общее время работы процессора
- Значительный объем обычных операций ввода-вывода при повторном выполнении команды
# rmss -rЭта команда разрешает операционной системе использовать память, заблокированную командой rmss, то есть восстанавливает обычный объем оперативной памяти в системе.