database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 10297 게시물 읽기
No. 10297
파라미터 문의
작성자
Y0UNG(rkdhs8)
작성일
2021-11-11 10:23
조회수
1,485

안녕하세요.


리눅스 서버에 postgresql를 설치하려고 합니다.

251 GB 중 10GB를 postgresql 디비로 설정을 하고 싶은데요.


- os 메모리 사이즈

- 264024100 kB = 251 GB

postgres@ubuntu:~/12/data$ cat /proc/meminfo

MemTotal:      264024100 kB

MemFree:        239662192 kB


---

질문1. 파라미터 설정 시,

####  work_mem

- sort, merge, join 등에 사용하는 메모리 사용량을 의미합니다.

- Default : 4MB

- 산정 방법

  - 방법1 : (시스템 전체 memory) / (max_connections * 16)


=> 계산하게 되면, (251 * 1024) / (100 * 16) = 160MB

work_mem = 160MB 설정해주면 되나요?

아니면 사용할 메모리 10기가를 기준으로 계산을 해야하나요?

이외에도 다른 파라미터도 이렇게 전체 메모리크기로 계산을 해야하는 것인지 헷갈립니다.


----

https://pgtune.leopard.in.ua/#/

위의 링크에서 값 입력 후 나온 결과를 그대로 사용해도 될까요?

설정 값 이미지 링크도 첨부하였습니다.


# WARNING

# this tool not being optimal

# for very high memory systems


# DB Version: 12

# OS Type: linux

# DB Type: web

# Total Memory (RAM): 251 GB

# CPUs num: 56

# Connections num: 100

# Data Storage: ssd


max_connections = 100

shared_buffers = 64256MB

effective_cache_size = 192768MB

maintenance_work_mem = 2GB

checkpoint_completion_target = 0.9

wal_buffers = 16MB

default_statistics_target = 100

random_page_cost = 1.1

effective_io_concurrency = 200

work_mem = 164495kB

min_wal_size = 1GB

max_wal_size = 4GB

max_worker_processes = 56

max_parallel_workers_per_gather = 4

max_parallel_workers = 56

max_parallel_maintenance_workers = 4



==================================

# DB Version: 12

# OS Type: linux

# DB Type: web

# Total Memory (RAM): 10 GB

# CPUs num: 56

# Connections num: 100

# Data Storage: ssd


max_connections = 100

shared_buffers = 2560MB

effective_cache_size = 7680MB

maintenance_work_mem = 640MB

checkpoint_completion_target = 0.9

wal_buffers = 16MB

default_statistics_target = 100

random_page_cost = 1.1

effective_io_concurrency = 200

work_mem = 6553kB

min_wal_size = 1GB

max_wal_size = 4GB

max_worker_processes = 56

max_parallel_workers_per_gather = 4

max_parallel_workers = 56

max_parallel_maintenance_workers = 4

이 글에 대한 댓글이 총 1건 있습니다.

PostgreSQL 서버는 자체적으로 OS 자원 제한을 할 수 없습니다. 

10G 메모리만 쓰게 설정했다고 하더라도, 세션 백엔드 프로세스는 자기가 필요한 메모리를 최대한 쓰기 때문에, 

OS의 남는 메모리 전부를 요청할 수도 있습니다. 이런 것을 막는 

정말 데이터베이스 서비스는 꼭 10GB 이하로만 서비스를 해야한다면,

OS의 cgroup 개념으로 자원 제한을 하는 것이 일반적입니다. 

이렇게 하려면, 일반적으로 cgroup 관련 명령어들도 하기도 하고, 

보다 쉽게 docker로 데이터베이스 서버를 운영하기도 합니다. 

 

김상기(ioseph)님이 2021-11-12 13:29에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
10301locale 이 어렵네요 [1]
post
2021-11-24
1300
10300설치 관련해서 문의드립니다. [1]
불꽃놀이
2021-11-24
1284
10299postgresql-12 시작 오류. 복제 체크포인트의 잘못된 매직 번호 [1]
조용욱
2021-11-21
1645
10297파라미터 문의 [1]
Y0UNG
2021-11-11
1485
10296greenPlum error 문의 [1]
차도진
2021-11-09
1269
10295쿼리실행 로그 확인 [1]
박노을
2021-11-08
1297
102949.6에서는 잘 되던 function이 12 버전으로 업그레이드 후 잘 안됩니다. [2]
반지현
2021-10-27
1500
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다