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
운영게시판
최근게시물
MySQL Q&A 28173 게시물 읽기
No. 28173
sleep 프로세스가 100개 이상, Thread_created 수치가 계속해서 증가하고 있습니다 T_T
작성자
김승동(xenolith)
작성일
2009-04-23 00:29
조회수
6,747


mysql> show processlist; 로 현재 살아있는 프로세스를 보면 100개가 훨씬 넘는 프로세스들이 sleep 상태로 살아 있습니다



그리고 아래 보시는 것처럼 Threads_created 수치가 계속해서 증가하고 있습니다



mysql> show status like '%threads%';

+------------------------+-------+

| Variable_name          | Value |

+------------------------+-------+

| Delayed_insert_threads | 0     |

| Slow_launch_threads    | 0     |

| Threads_cached          | 1     |

| Threads_connected      | 83    |

| Threads_created          | 3317  |

| Threads_running          | 1     |

+------------------------+-------+

6 rows in set (0.00 sec)




mysql> show status like '%threads%';

+------------------------+-------+

| Variable_name          | Value |

+------------------------+-------+

| Delayed_insert_threads | 0     |

| Slow_launch_threads    | 0     |

| Threads_cached          | 12    |

| Threads_connected      | 64    |

| Threads_created          | 3605  |

| Threads_running          | 1     |

+------------------------+-------+

6 rows in set (0.00 sec)




어떤 설정이 잘못된 걸까요?



현재 DB에 접속하는 클라이언트 프로그램에서 Connection Pool을 사용하는데 query 수행을 마치면 반드시 close로 자원을 반환하고 있거든요



서버 문제를 해결하려고 프로그램과 서버의 설정을 조정하면 할 수록 오류가 더 커지고 있어 죽겠습니다 T_T



해결방법은 전문업체와 상담하는 방법 밖에는 없는 걸까요? OTL


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

안녕하세요 박성원입니다 

흠.. 저도 같은 문제로 고민중인데요 대체적으로 윤곽은 잡았습니다. 

혹시 승동님도 ODBC를 사용하시나요? 저도 이런경우는 처음입니다만, 혹시나해서 odbc를 특정 계정으로 생성하여 재 등록 후 processlist를 확인하니 이녀석만 close가 안되더군요 ;;

결론은 mysql odbc 3.51 driver 이녀석 때문인듯하네요 
이녀석이 계속해서 connection을 진행하는군요 ;; 왜그런지 ;;; 아우.. 아침부터 머리 아프게 ㅡㅡ;;


해결책은 먼가 방법이 있을듯한데 혹시 아시는분이 계신가요?

박성원(darkancia)님이 2009-04-23 10:49에 작성한 댓글입니다.
이 댓글은 2009-04-23 10:50에 마지막으로 수정되었습니다.

Common DBCP로 바꾸고 DB 커넥션하는 부분을 Single Tone 기법으로 수정해서 깔끔하게 해결했습니다


작업자가 Spring에서 제공하는 DataSource를 사용했는데 소스를 열어보니 접속할 때마다 DataSource를 생성하도록 해놨더군요;;;


query를 마치는 곳마다 close를 시키도록 처리를 해두었지만 Spring에서 커넥션 관리를 제대로 못해서 그런지 아니면 사용하는 방법을 모르고 사용해서 그런지 DB 서버에 계속 부하를 주게 되더군요


아무튼 커넥션 늘어나는 문제와 Thread_created 수치 문제는 잡았는데 이제는 업로드 프로그램의 속도가 문제네요


프로그램을 하나 띄워서 전송할 때는 정말 빠르게 전송이 되는데, 프로그램을 하나씩 추가할 때마다 프로그램 개수에 비례해서 느려지네요 T_T


커넥션풀 설정을 잘못해서 그런건지 아니면 업로드 프로그램을 실행시키는 PC 자체의 사양이 좋지 못해서 그런건지 그것도 아니면 Windows 에서 뭔가 제약이 걸려있어서 그런건지.....


TCP 소켓 개수도 10000개로 늘려놨는데 크게 성능이 향상되는 건 없네요


큰 산 하나 넘었나 싶었는데 또 산 하나가 버티고 서있네요


성원님도 커넥션 객체를 Single Tone 방식으로 변경해서 테스트 해보시길 권합니다


그럼 하루 빨리 고민에서 탈출하시길 바라구요 주말 즐겁게 보내세요 :]
김승동(xenolith)님이 2009-04-24 23:43에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
28178mysql의 스토리지들 중에서 이상한 것이 있어서 질문드립니다.
유재훈
2009-04-23
5187
28177Mysql 디비 이전시 파일복사로 해도 괜찮을까요? [1]
박찬영
2009-04-23
5965
28175ENUM: 열거값 추가 제거. [1]
윤범석
2009-04-23
6707
28173sleep 프로세스가 100개 이상, Thread_created 수치가 계속해서 증가하고 있습니다 T_T [2]
김승동
2009-04-23
6747
28172이제 mysql은 사라지나요????? [2]
유재훈
2009-04-21
5644
28171mysql의 커넥션 풀에서 쓰레드를 재사용 하는 이유가 뭔가요? [1]
유재훈
2009-04-21
6350
28170Connection Pool 사용과 Aborted_clients 수치가 관계가 있을까요? [1]
김승동
2009-04-21
5961
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다