Puncte:1

starea systemctl nu afișează (blochează) IO, systemctl arată valori nevalide pentru IO

drapel mv

Folosesc Ubuntu 20.04. Încerc să obțin IO și BlockIO pentru procesul postgres (și toți copiii acestuia).

`statut systemctl [email protected]`  

arată memoria și timpul CPU utilizat, dar nu IO:

[email protected] - PostgreSQL Cluster 14-main
     Încărcat: încărcat (/lib/systemd/system/[email protected]; enabled-runtime; >
     Activ: activ (alergare) din Mar 2021-12-14 17:13:19 WET; acum 2 min 21 s
    Proces: 1285 ExecStart=/usr/bin/pg_ctlcluster --skip-systemctl-redirect 14>
   PID principal: 1395 (postgres)
      Sarcini: 11 (limită: 37513)
     Memorie: 263,2 M
        CPU: 32.372s
     CGroup: /system.slice/system-postgresql.slice/[email protected]
             ââ1395 /usr/lib/postgresql/14/bin/postgres -D /var/lib/postgresql/>
             ââ1442 postgres: 14/principal: punct de control
             ââ1444 postgres: 14/principal: scriitor de fundal
             ââ1445 postgres: 14/principal: walwriter
             ââ1446 postgres: 14/principal: lansator de autovacuum
             ââ1447 postgres: 14/principal: colector de statistici
             ââ1448 postgres: 14/principal: TimescaleDB Fund Worker Launcher
             ââ1449 postgres: 14/principal: lansator de replicare logica
             ââ1450 postgres: 14/principal: TimescaleDB Background Worker Scheduler
             ââ1453 postgres: 14/principal: TimescaleDB Background Worker Scheduler
             ââ5990 postgres: 14/principal: postgres tsenergydata 127.0.0.1(55312) I>

Mai întâi, am încercat următoarele:

  1. Sub /etc/systemd/system.conf, am setat opțiunile IO Accounting la da:

DefaultIOAccounting=da

DefaultBlockIOAccounting=da

  1. și apoi reporniți sistemul.

Cu toate acestea, nu pare să facă o diferență. IO nu este afișat.

Apoi, am încercat systemctl --all --full show [email protected]:

  • Ieșirea arată de fapt valori pentru I/O: IOReadBytes=18446744073709551615 IOReadOperations=18446744073709551615 IOWriteBytes=18446744073709551615 IOWriteOperations=18446744073709551615
  • Cu toate acestea, aceste valori nu par să aibă niciun sens (pare să fie în regiunea petabyte). Nu am făcut altceva decât să pornesc postgres. Acest lucru nu poate genera nicăieri atât de mult IO, cu siguranță. Mai mult, valorile pentru citiri, scrieri și operații sunt toate identice, ceea ce pare suspect.
  • Valorile indicate de show systemctl pentru CPU și memorie sunt identice cu valorile afișate folosind starea systemctl comanda. Deci nu toate valorile sunt în afara graficelor.

Există o modalitate de a obține IO-ul unui anumit serviciu (chiar dacă acel serviciu folosește mai multe procese)?

Caut ceva mai simplu decât să fac bucla proc/$pid/io și adunarea citirilor/scrierilor pentru fiecare proces asociat.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.