Как узнать в какие папки и какими процессами пишется на SSD?
Домашний сервер Debian Wheezy. 1 SSD 120Gb + 2HDD 1Tb. Nginx + MariaDB+Proxy DNS (PDNS) +php-fpm5.3+ZendOpcache+Redis+FTP+samba+postfix+procmail+vnstat+SSH+drush+SOLR+transmission+Drupal 4 сайта - Aegir, Chive, Webmin - панели управления. И ещё по мелочи. :)))
Два софт рейда.
SSD + раздел HDD 1 в гибридном рейде - зеркало, HDD с параметром writes mostly, что значит запись преимущественно идёт сначала на него, а чтение в основном с SSD. + раздел второго HDD указан spare для hot swap.
Второй рейд - зеркало, разделы по 800Gb на HDD.
Ещё два раздела по 4Gb в конце каждого диска не в рейде. Один под swap, второй под /var/log.
Параметры монтирования - relatime, TRIM по расписанию раз в неделю через скрипт в cron.weekly, логит в /var/log
На (зеркале с) SSD система и всё остальное, на HDD загрузки торрентов и файловый архив.
Что-то постоянно пишет мелкими файлами в SSD. Суммарно набирается 6-8Gb в сутки. Это в общем не страшно, потому что гарантия 5 лет учитывает до 20Gb записи в сутки, но меня напрягает что пишется именно мелкими файлами (iotop показывает), что крайне не желательно для SSD. Я могу конечно сделать trim почаще, но хотелось бы выяснить кто и куда пишет, и по возможности перенести эти папки (кроме базы данных и кэшей вроде редиски, потому что зачем тогда SSD). Но оказывается трудно найти какой процесс пишет в какую папку. Порылся в гугле, какие-то ужасные решения через дампы памяти. Есть ли какой-то простой способ узнать кто и куда пишет, например через время обновления файлов или ещё как? Как бы вы решали эту задачу?
Хорошая утилитка. Но сравнил данные iostat -xdk 1 25 с iotop -oa. Запись сплошная, около 100kb/s. Наверное подкручу trim и поищу ещё, опции типа discard, перенос журнала, отключение журнала и т.п. Так сказать опытно-интуитивным путём. Техника, однако.
кстати iostat показывает что пишется сразу на массив, и что пишется одинаково на ssd и на hdd а читается в 4-6 раз больше с ssd. То есть параметр write mostly для гибридного массива таки работает. :) Это так, к слову.
Короче, процесс виновник похоже найден. Через вывод iotop -oa. Это процесс ядра, который журналирует массивы и диски.
285 be/3 root 0.00 B 86.00 M 0.00 % 0.63 % [jbd2/md2-8]
Причём "поганец" постоянно пишет что-то насчёт массивов, поток логов относительно разделов не велик. Надо узнать куда пишет и как это исправить. Решение нашёл:
в файле /usr/lib/pm-utils/power.d/journal-commit
нужно изменить одну строку JOURNAL_COMMIT_TIME_AC=${JOURNAL_COMMIT_TIME_AC:-0}
вместо нуля я поставил 120
Однако у меня нет такого файла. pm-utils не установлены, потому что не используется ни режимы сна, ни остановки дисков.