나는 정상적인 사용 후에 ~ 30 idle postgres 프로세스가 많은 프로세스 특정 메모리를 차지하는 이유를 알아 내려고하고 있습니다. Postgres 9.3.1 및 CentOS 릴리스 6.3 (최종)을 사용하고 있습니다. top
를 사용 , 나는 비 공유 (RES - SHR)의 (평균 ~ 2백메가바이트) 300메가바이트까지 사용하는 포스트 그레스 연결의 많은 볼 수있는 메모리 :많은 메모리를 차지하고있는 idle postgres 프로세스
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3534 postgres 20 0 2330m 1.4g 1.1g S 0.0 20.4 1:06.99 postgres: deploy mtalcott 10.222.154.172(53495) idle
9143 postgres 20 0 2221m 1.1g 983m S 0.0 16.9 0:14.75 postgres: deploy mtalcott 10.222.154.167(35811) idle
6026 postgres 20 0 2341m 1.1g 864m S 0.0 16.4 0:46.56 postgres: deploy mtalcott 10.222.154.167(37110) idle
18538 postgres 20 0 2327m 1.1g 865m S 0.0 16.1 2:06.59 postgres: deploy mtalcott 10.222.154.172(47796) idle
1575 postgres 20 0 2358m 1.1g 858m S 0.0 15.9 1:41.76 postgres: deploy mtalcott 10.222.154.172(52560) idle
을 약 29 총 유휴 연결이 있습니다. 이러한 유휴 연결은 머신이 스왑을 사용하기 시작할 때까지 메모리에서 계속 증가하고 성능은 멈 춥니 다. 예상대로 연결을 다시 설정하면 프로세스 관련 메모리가 지워집니다. 동일한 시스템에서 같은 수의 연결은 정기적으로 다시 연결할 때 메모리의 20 % 만 사용합니다 (스왑 공간이 0 인 경우). 이 프로세스들은 어떤 종류의 정보를 보유하고 있습니까? 장기간 유휴 상태의 포스트그레스 프로세스가 새로운 유휴 상태의 메모리와 비슷한 메모리 사용량을 가질 것으로 기대합니다.
주목할 가치 : 저는 스키마를 많이 사용하고 있습니다. 내 앱에 대한 모든 요청에서 search_path를 설정하고 다시 설정합니다.