Вот запуск:
ps -eoetime,pid,user,cmd --sort -etime
Можно выбрать любую информацию, которую Вы хотите отобразить, видеть man ps
для длинного, длинного списка. Вышеупомянутые списки команд все процессы, отсортированные в порядке убывания к прошедшему времени. Если Вы захотите только отобразить процессы, которые выполняли по крайней мере семь дней, то необходимо будет сделать что-то с grep
или awk
; в этом случае Вы могли бы просто хотеть распечатать etime
и pid
так как можно позже распечатать любые данные, Вы хотите на определенных процессах.
К сожалению, etime
формат более разработан для людей, чем для сценариев, но следующее должно работать (хотя я не протестировал его):
ps -eoetime=,pid= | awk 'int(substr($1,1,index($1,"-"))) >= 7 { print }'
Краткое объяснение параметров командной строки:
-e show all processes
-eo... same as -e -o...
-oetime=,pid= for each process, print the elapsed time and pid.
The '=' suppress the column headers
--sort -etime sort the processes in descending order by elapsed time
(+etime would have been ascending order)
Вы можете посмотреть на Sabayon Linux , дочерний продукт Gentoo. Он использует предварительно скомпилированные пакеты, двоичные файлы a.k.a, хранящиеся в репо, которые являются удаленными. На самом деле, сопровождающие конфигурируют пакет с помощью предварительно определенных флагов USE, а затем компилируют пакет с портажем. Затем, используя Sabayon Binary Package Manager, Entropy , сопровождающие загружают скомпилированный пакет в репо Sabayon, и он становится «двоичным»
.
-121--186759- Вы можете использовать xargs
для итерации результатов так:
$ grep '/home' /etc/passwd | cut -d: -f1 | xargs -n1 -I{} chage -l {} | \
grep "Password expires" | column -t
Password expires : never
В этом варианте мы вызываем xargs
с помощью переключателя -n1
, так что он будет вызывать только chage -l
с одним аргументом имени пользователя. -I {}
сообщает xargs
использовать {}
в качестве макроса, чтобы можно было пометить, куда следует поместить аргументы при вызове chage
.
Создается впечатление, что один поток записывает чуть больше 4KB примерно 111 раз в секунду. Этого достаточно для 100% -ной занятости диска (111 операций ввода-вывода * 9 мс времени обслуживания = 1 секунда времени обслуживания в секунду = 100%). Поскольку нет других процессов записи на этот диск (этот раздел на самом деле), очередь ожидания пуста, все запросы обрабатываются немедленно.
В вашей рабочей нагрузке нет ничего особенного или странного, диск является узким местом.
Для повышения производительности можно выбрать более быстрый диск или твердотельный накопитель, либо использовать массив дисков для распределения операций записи, либо настроить приложение на использование больших блоков или увеличить размер кэша.
Ваш тест dd
бессмысленен, Вы измеряете не производительность диска, а, по существу, кэш, особенно в Solaris, где /tmp
, скорее всего, будет поддерживаться виртуальной памятью, tmpfs
по умолчанию для этой файловой системы.
http://en.wikipedia.org/wiki/Asynchronous_I/O, программа выполняет запросы на ввод/вывод, но не ждет их. Однако она все еще может принимать и обрабатывать ответы на запросы ввода/вывода, как только они поступают.