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 Tutorials 14789 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 14789
pconnect와 thread좀비..그리고 mysqladmin
작성자
이재원(운비)(unbinara)
작성일
2002-01-15 17:22
조회수
8,369

음...

다 알고 있을 수도 있지만..초보들과 mysqladmin을 사용해보려는 이들을

위해 한 가지 팁을 전합니다.

 

리눅스에서

 

#pstree 하면

 

safe_mysqld---mysqld---mysqld---2*[mysqld]

이와 같이 thread가 붙어 안없어지는 것을 확인될 때가 있습니다.

 

그런데 대부분 이럴경우 나두면 max_connection에 걸려 mysql이 사망(?)하는 사태에 걸립니다.

 

이럴때 mysqladmin을 해보져...

 

#mysqladmin -i3 processlist -u root -p

Enter password:

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

| Id | User | Host | db | Command | Time | State | Info |

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

| 13852 | nobody | localhost | aaaa | Sleep | 98 | | |

| 13873 | root | localhost | | Query | 0 | | show processlist |

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

 

흠~

 

현재상황은 aaaa라는 데이터베이스에 접속한 후 thread가 좀비현상(이렇게 표현해도 되나?)에 있는상태입니다. 원인은 다양하겠스나, 필자의 경우에는 어디선가 받은 웹프로그램을 테스트용도로 그대로 달았는데 mysql접속함수가 pconnect인 것이 확인되었다. 한번 씩 접속할 때마다 2*[mysqld] 즉 thread수는 증가하면서 좀비현상을 발생시켜 결국에는 max mysql수에 도달하는 경우가 생겼던

것이다.

 

이럴 경우 mysql을 재시작하면 되지만 쓰레드와 프로세스는 깨끗이 죽지않아 모든 프로세스를

일일이 죽여야 했던 기억이 있었다....--;

 

물론 아래의 방법도 그런 종류이나 mysql의 문제를 확인하고 mysqladmin을 활용한 thread죽이기

를 해보았다

 

[형식]

mysqladmin kill id,id,... -u root -p

 

#mysqladmin kill 13852 -u root -p

Enter password:

 

이와 같이 하면 좀비로 붙어있는 thread를 mysql 재시작안하고 처리할 수있다.

무지 깔끔한 명령이고, mysql을 restart하는 일도, 깔끔히 안 죽는 일도 없다.

또한, mysqladmin으로 문제 해결방법을 하나 더 터득하게 된 것이 좋았다.

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

잘은 모르지만.. wait_timeout이라고 있져.. 디폴트로 28800 인가?(초단위)...

 

mysqladmin processlist에 보면 오랫동안 잠자는 놈이 있는데.. 이놈을 가만히 놓아두면.. wait_timeout 동안 잠을 자거든여..

 

님같이 kill 명령으로두 이놈을 죽일수 있구..

 

wait_timeout를 짧게 주어서 일정 시간이 지나면.. 죽일 수도 있더라구염....

 

참고 하시라구염..

우라차님이 2002-01-16 22:29에 작성한 댓글입니다.

그리고 .. 이렇게 하는 수도 있습니다.

mysql 을 root 로 접속한후

 

mysql > kill id

치면 해당 id 가 죽습니다 ..

 

^^

고진우님이 2002-02-22 16:55에 작성한 댓글입니다.

왜 일일이 죽여여???

 

그냥 killall mysqld 하면 다죽는데 ㅡㅡ;

knight님이 2002-05-21 10:21에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
15102mysql 에서 open file caching
이창훈
2002-02-06
11423
14900mysqladmin 총정리
정재익
2002-01-23
17529
14867mysqlfs (MySQL filesystem) [1]
정재익
2002-01-20
8375
14789pconnect와 thread좀비..그리고 mysqladmin [3]
이재원(운비)
2002-01-15
8369
14729MySQL C API
정재익
2002-01-11
10007
14690Postfix + Mysql
정재익
2002-01-10
6402
14658Using MySQL with XML
정재익
2002-01-09
7843
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다