Назад | Перейти на главную страницу

Будет ли noatime на томе tmpfs улучшать производительность?

Я использую /run/shm/myfolder для микрокеширования nginx, также сохраняя ngx_pagespeed файлы там. Интересно, увеличится ли скорость, если я пойду с relatime к noatime? Это для HDD, но на tmpfs что это изменит?

tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=9929500k)

Причина использования noatime или relatime на реальном диске заключается в том, что без него чтение также будет включать запись на диск. Эта дополнительная запись может замедлить работу системы, вызвать раскрутку дисков, которые в противном случае оставались бы вращающимися намного дольше, а также вызвать износ флэш-носителей.

Но с tmpfs никакие данные никогда не нужно записывать на диск. Данные могут быть записаны в свопинг, но только если необходимо освободить оперативную память для других данных. Это означает, что частые обновления tmpfs не дороже, чем частые чтения, потому что в обоих случаях эффект будет заключаться в хранении данных в памяти.

Более того, tmpfs только выгружает содержимое файла. Метаданные (включая временные метки) просто остаются в ОЗУ. Таким образом, мы действительно просто говорим о том, следует ли обновлять метку времени в памяти, что очень дешево по сравнению с фактической операцией чтения, запускающей ее в первую очередь.

По этим причинам маловероятно, что будет заметная разница в производительности между использованием noatime, relatimeили ни один из файлов tmpfs.

Теоретически я согласен с тем, что сказал @kasperd. Однако я решил попробовать это изменение на моем очень загруженном tmpfs, поддерживающем данные munin, и это сразу же обеспечило 8% -ное сокращение общего времени обработки munin.

Эта файловая система содержит более 300000 файлов, каждый из которых обрабатывается каждые 5 минут, и каждый бит производительности, который я получаю, помогает, поэтому 8% были довольно значительными.