Информация об изменениях

Сообщение Re[10]: Что требуется в РФ сегодня от 14.09.2021 7:53

Изменено 14.09.2021 8:00 lpd

Re[10]: Что требуется в РФ сегодня
Здравствуйте, Reset, Вы писали:

S>>и логи при креше часто не успевают записаться на диск


R>Делаешь mmap'ed файл и пишешь в эту память как в циклический буфер.


В чем выигрыш?
Можно использовать обычный write(), затем fflush() чтобы libc скинуло кеш в ядро, и, если нужно, fsync() чтобы ядро сбросило свои страницы на диск. После этого данные будут на диске и сохранятся при креше системы. В большинстве случаев этого достаточно.

R>Можно журнал сбрасывать на диск принудительно, если нужно быстрее, но опять же это будет делаться асинхронно, т.е. приложение не будет ждать.


Асинхронный fsync() хотели добавить в linux, но насколько мне известно пока это не сделано.
Re[10]: Что требуется в РФ сегодня
Здравствуйте, Reset, Вы писали:

S>>и логи при креше часто не успевают записаться на диск


R>Делаешь mmap'ed файл и пишешь в эту память как в циклический буфер.


В чем выигрыш?
Можно использовать обычный write(), затем fflush() чтобы libc скинуло кеш в ядро, и, если нужно, fsync() чтобы ядро сбросило свои страницы на диск. После этого данные будут на диске и сохранятся при креше системы. В большинстве случаев этого достаточно.
При использовании mmap() просто не нужен fflush(), для гарантии записи все равно нужен msync().

R>Можно журнал сбрасывать на диск принудительно, если нужно быстрее, но опять же это будет делаться асинхронно, т.е. приложение не будет ждать.


Асинхронный fsync() хотели добавить в linux, но насколько мне известно пока это не сделано.