du показывает разные цифры с течением времени и необоснованно маленький размер файла

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

Причина в том, что служба будет занимать прослушиваемый порт. Для достижения нулевого времени простоя никогда не должно быть случаев, когда клиенты перенаправляются на несуществующий -порт или на порт с отключенной службой -. Но вы не можете одновременно запускать Process Aи Process Bна одном и том же порту и IP-адресе.

Чтобы добиться нулевого времени простоя, вы должны запустить новый процесс на порту, отличном от старого, а затем использовать что-то вроде правил брандмауэра или балансировщика нагрузки для перенаправления трафика со старого порта на новый порт. Затем вы должны дождаться отключения старых клиентов. Затем (и только потом )вы можете закрыть старую службу.

«Обычный» способ добиться этого — использовать два узла (два сервера )за балансировщиком нагрузки -.В этом сценарии вы можете перезапустить узел, временно повторно -настроив балансировщик нагрузки -так, чтобы он указывал на другой узел, и заново -настроив его снова после завершения перезапуска.

Это выходит за рамки возможностей systemd. Если вы хотите автоматизировать процесс, используя брандмауэры и автоматическую перенастройку -службы для использования другого порта, вы можете создать сложный набор сценариев для достижения этой цели и подключить его как настроенную reloadопцию.

0
26.05.2020, 13:55
1 ответ

В некоторых файловых системах, , таких как ZFS и Btrfs , результат duбез --apparent-sizeдействительно меняется со временем .

Нет гарантии, что файловая система не будет задерживать, -переупорядочивать, сжимать, дедуплицировать или иным образом изменять физическое хранилище с течением времени.

Таким образом, простой duможет дать разные результаты в любую секунду.


Подробный пример :Запуск strace -vдля вызова duпоказывает данные, возвращенные системным вызовом типа stat-; первый:

newfstatat(AT_FDCWD, "test.webp", {... st_blksize=131072, st_blocks=1, st_size=464124,...

и вскоре после:

newfstatat(AT_FDCWD, "test.webp", {... st_blksize=131072, st_blocks=1029, st_size=464124,...
0
18.03.2021, 23:32

Теги

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