구차니 2019. 3. 14. 15:09

서버를 보다보니 뭔가가 주기적으로 IO를 일으키는게 보여서

프로세스 확인해보니 특정 VM

특정 VM에다가 iotop 깔아서 보니 아래 녀석이 튀어나온다.

% postgres: wal writer process

% postgres: checkpointer process

% postgres: autovacuum worker process   dbname


그래서 WAL이 먼가 찾아보니 Write Ahead Logging의 약자라고..

WAL을 쓰면 하드에 쓰는 주기가 줄어든다고 하는데..

[링크 : http://postgresql.kr/docs/9.6/wal-intro.html]


[링크 : https://www.postgresql.org/docs/9.6/wal-intro.html]


체크포인트는 더티를 쓰는 거고(write back에 가깝나?)

 At checkpoint time, all dirty data pages are flushed to disk and a special checkpoint record is written to the log file.

[링크 : https://www.postgresql.org/docs/9.2/wal-configuration.html]

[링크 : https://www.postgresql.org/docs/8.2/wal-configuration.html]


얘는 garbage collector 인거 같네

 VACUUM -- garbage-collect and optionally analyze a database

[링크 : https://www.postgresql.org/docs/8.2/sql-vacuum.html]


[링크 : https://www.postgresql.org/docs/8.2/runtime-config-autovacuum.html]

[링크 : https://www.postgresql.org/docs/8.2/routine-vacuuming.html]



읽으려니 눈에 안들어 오네.. ㅠㅠ

[링크 : https://www.cybertec-postgresql.com/en/postgresql-writer-and-wal-writer-processes-explained/]