달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
2011. 1. 11. 11:54

PostgreSQL - fsync Work/PostgreSQL2011. 1. 11. 11:54

PostgreSQL이 설치 된 후 Data Directory에 보면, postgresql.conf 라는 설정 파일이 있다.
이 설정 파일의 parameter 들 중 fsync 에 대해서 test해 본 결과를 기록한다.
이 옵션의 의미는 사용자가 시스템 콜 혹은 DML, DDL 등의 결과를 메모리에서 Disk로 내려쓰는 일을 하는 것을 의미한다.
언제 어떤 조건에서 내려쓰는지는 찾지 못했지만, 기본적으로 시간 날때 마다 쓰는 듯 한 느낌...
(좀 더 공부를..ㅠㅠ)

아래는 Test 결과...

create table t_20110110_03 ( name varchar(30) );
create table t_20110110_04 ( name varchar(30) );

SELECT COUNT(*) FROM t_20110110_02; -- 4,292,608

INSERT INTO t_20110110_03 SELECT * FROM t_20110110_02;
-- fsync off : 13860 ms
INSERT INTO t_20110110_04 SELECT * FROM t_20110110_02;
-- fsync on :  25125 ms

truncate table t_20110110_03;
truncate table t_20110110_04;

INSERT INTO t_20110110_03 SELECT * FROM t_20110110_02;
-- fsync on : 23516 ms
INSERT INTO t_20110110_04 SELECT * FROM t_20110110_02;
-- fsync off : 13860 ms

마지막 2개의 해당 쿼리를 실행할 때의 Phisical Disk Write 모습..

화면에 제대로 안잡혔는데... 위의 모습으로 보아 디스크의 효율적인 사용은 fsync off가 더 나은 듯 하다.
당연한 이야기 이지만, 상황에 따라 잘 써야 할 듯...
:
Posted by Elick