Рейтинг:1

Состояние systemctl не показывает (блокировать) ввод-вывод, systemctl показывает недопустимые значения для ввода-вывода

флаг mv

Я использую Убунту 20.04. Я пытаюсь получить IO и BlockIO для процесса postgres (и всех его дочерних элементов).

`статус systemctl [email protected]`  

показывает используемое время памяти и процессора, но не ИО:

[email protected] — кластер PostgreSQL 14-основной
     Загружено: загружено (/lib/systemd/system/[email protected]; enable-runtime; >
     Активно: активно (работает) с Вт 2021-12-14 17:13:19 WET; 2мин 21с назад
    Процесс: 1285 ExecStart=/usr/bin/pg_ctlcluster --skip-systemctl-redirect 14>
   Основной PID: 1395 (постгрес)
      Заданий: 11 (лимит: 37513)
     Память: 263,2 Мб
        ЦП: 32,372 с
     CGroup: /system.slice/system-postgresql.slice/[email protected]
             ââ1395 /usr/lib/postgresql/14/bin/postgres -D /var/lib/postgresql/>
             ââ1442 postgres: 14/main: контрольная точка
             ââ1444 postgres: 14/main: фоновый писатель
             ââ1445 postgres: 14/main: walwriter
             ââ1446 postgres: 14/main: автовакуумный лаунчер
             ââ1447 postgres: 14/main: сборщик статистики
             ââ1448 postgres: 14/main: TimescaleDB Background Worker Launcher
             ââ1449 postgres: 14/main: средство запуска логической репликации
             ââ1450 postgres: 14/main: TimescaleDB Background Worker Scheduler
             ââ1453 postgres: 14/main: TimescaleDB Background Worker Scheduler
             ââ5990 postgres: 14/main: postgres tsenergydata 127.0.0.1(55312) I>

Сначала я попробовал следующее:

  1. Под /etc/systemd/system.conf, я установил для параметров учета ввода-вывода значение да:

DefaultIOAccounting=да

DefaultBlockIOAccounting=да

  1. а затем перезагрузите систему.

Однако, похоже, это не имеет значения. ИО не отображается.

Затем я попытался systemctl --all --full показать [email protected]:

  • Вывод действительно показывает значения для ввода-вывода: IReadBytes=18446744073709551615 IReadOperations=18446744073709551615 IOWriteBytes=18446744073709551615 IOWriteOperations=18446744073709551615
  • Однако эти значения, похоже, не имеют никакого смысла (кажется, в районе петабайт). Я ничего не сделал, кроме запуска postgres. Конечно, это не может генерировать так много операций ввода-вывода. Более того, значения для чтения, записи и операций идентичны, что кажется подозрительным.
  • Значения, показанные systemctl показать для ЦП и памяти идентичны значениям, показанным с помощью статус systemctl команда. Так что не все значения зашкаливают.

Есть ли способ получить ввод-вывод конкретной службы (даже если эта служба использует несколько процессов)?

Я ищу что-то более простое, чем цикл proc/$pid/io и суммирование операций чтения/записи для каждого связанного процесса.

Ответить или комментировать

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