Несколько лет назад MongoDB улавливал некоторое количество тепла, чтобы иметь небезопасное значение по умолчанию, связанное с сохранением диска (см., Например, this question). Какие меры должен выполнить, чтобы обеспечить безопасную запись на диск? Достаточно ли позвонить fsync()
после записи или принять другие меры предосторожности, такие как ведение журнала или конкретные способы использования диска?Безопасное сохранение на диске
ответ
Вызов fsync()
приведет к очистке грязных страниц в буферном кэше с диском. Это зависит от нагрузки на вашем сервере, так как наличие большого количества грязных страниц в кеше и инициирование флеша могут привести к зависанию системы или к невосприимчивому состоянию. Однако его рекомендуется настроить некоторые из вертушек ядра с оптимальными значениями для vm.dirty_expire_centisecs
, vm.dirty_background_ratio
, чтобы все записи были безопасными и быстрыми и не хранились в кеше в течение длительного времени. Имея более низкие значения, можно замедлить среднюю скорость ввода-вывода, поскольку постоянная попытка записи грязных страниц приведет к более частому запуску кода перегрузки ввода-вывода.
В качестве альтернативы, некоторые из баз данных обеспечивают прямой ввод-вывод как функцию файловой системы, в которой файлы считываются и записываются непосредственно из приложений на запоминающее устройство, минуя кеши. Прямой ввод-вывод в основном используется в приложениях (базах данных), которые управляют своими собственными кэшами с помощью флага O_DIRECT.
- 1. Безопасное шифрование файла на диске
- 2. Сохранение файла на диске
- 3. Сохранение файлов на диске
- 4. Безопасное сохранение пароля Redis
- 5. Безопасное сохранение постоянных значений
- 6. Сохранение значения на диске XCode
- 7. Сохранение массива numpy на диске
- 8. Сохранение файлов на Google Диске
- 9. Конфигурация. Сохранение на сетевом диске
- 10. Безопасное сохранение файлов cookie
- 11. Безопасное сохранение значений переменной PHP
- 12. Безопасное сохранение данных баланса счета
- 13. Безопасное сохранение словаря в файл
- 14. Закрытие кеша JCS, гарантированное сохранение на диске
- 15. Сохранение логической матрицы OpenCV на диске
- 16. Маркировка процесса unix/сохранение pid на диске?
- 17. сохранение загруженных файлов на диске, путь ubuntu
- 18. Сохранение структур данных Scala на диске
- 19. Сохранение бережливости-сериализованная объекты на диске
- 20. Сохранение диаграммы как изображение на жестком диске
- 21. Сохранение на диске базы данных в памяти
- 22. Сохранение неиспользуемых элементов данных класса на диске
- 23. libSpatialIndex: загрузка/сохранение индекса на диске
- 24. Сохранение проектов Visual Studio на сетевом диске
- 25. Сохранение файлов в конкретном диске
- 26. Безопасное сохранение дополнительной энтропии при использовании DPAPI
- 27. C# безопасное сохранение async при изменении данных?
- 28. Безопасное сохранение токенов учетных данных пользователя
- 29. Безопасное шифрование и сохранение пароля в CoreData
- 30. Безопасное сохранение пароля в программном коде?