В моем Debian Linux есть три разных часовых пояса

Возможно, это буфер stdout задерживает вывод. Буфер конвейера может быть довольно большим , обычно это в лучшем случае несколько строк. Вы можете проверить, можете ли вы отключить его.

Построчное сжатие ничего не даст, оно может даже увеличить размер файла. gzip (на основе DEFLATE ) и большинство других алгоритмов сжатия работают в довольно больших скользящих окнах, а также имеет для хранения большого количества прошлых данных ( это не связано с выходным буфером), чтобы фактически сжимать что-либо - большая часть сжатия происходит от ссылки на прошлые данные (обычно косвенно вы находите наиболее распространенные последовательности и даете им кратчайшие коды в выходных данных). Существует компромисс между степенью сжатия и потреблением памяти, и если вы хотите правильно сжать, вам нужна структура данных в памяти, которая содержит текущий словарь. Он также будет работать по частям, а не побайтово, так что ничего не продвинется вперед, пока не будет собрано достаточное количество входных данных.

Проверить, делают ли нумерованные аргументы, устанавливающие степень сжатия, что-нибудь ( gzip -3 для уровня 3 вместо 6 по умолчанию в моей системе). Некоторые реализации и алгоритмы могут иметь другие настройки ( bzip2 -s снижает использование памяти - попробуйте, если он у вас есть в вашей системе).

В общем, я не уверен, выполняет ли gzip дополнительную буферизацию. Я не проверял исходный код для реализации busybox, но полагаю, что в любом случае это не должно быть намного больше, чем требуется алгоритму. Я действительно подозреваю, что главным узким местом являются буферы потоков.

4
18.02.2019, 14:39
1 ответ

Большинство программ считывают настройки часового пояса один раз при запуске -и не ожидают, что они изменятся во время работы программы.

Таким образом, вам потребуется перезапустить все программы с неправильным часовым поясом:

root@debian:~: systemctl restart rsyslog

root@debian:~: systemctl restart apache2

Вам также следует обновить файл initramfs, чтобы правильный часовой пояс был установлен как можно раньше в процессе загрузки:

root@debian:~: update-initramfs -u

Похоже, Apache использует часовой пояс UTC. Это может быть преднамеренным :можно использовать переменную окружения TZдля установки определенного часового пояса для определенных программ, если, например. некоторая обработка сообщения журнала -требует, чтобы журналы некоторых служб были в формате UTC. Это может быть установлено в /etc/apache2/envvars.

Возможно, ваш демон системного журнала использует восточный часовой пояс США. Это обычное «заводское значение по умолчанию» для программного обеспечения, ориентированного на США -, и, вероятно, это то, на что был установлен ваш часовой пояс до того, как вы изменили его на Тегеран.

(Я ожидал, что Debian вместо этого будет использовать UTC по умолчанию, но, возможно, есть некоторые исторические причины обратной совместимости, почему бы и нет.)

2
27.01.2020, 20:59

Теги

Похожие вопросы