mysql cpu 점유율 100%
글쓴이: centos / 작성시간: 수, 2009/05/13 - 4:16오후
안녕하세요.
it회사에 근무하는 서버엔지니어 입니다.
질문 드리겠습니다.
한 서버의 mysql cpu점유율이 평균 0~100, 0~200, 0~300 정도 차지합니다.
특히 그서버가 메일을 발송할경우 mysql cpu 점유율이 평균 100 이상을 기본으로 넘나듭니다.
또한 메일을 발송할경우 아파치와, mysql 데몬은 살아있는 상태지만, 웹사이트가 안뜨는 현상이 발생합니다.
mysql cpu점유율을 만이 차지해 과부화가 일어나는듯 합니다.
mysql 점유율을 낮출수있는 방법있는지요?
현재 http, apache, mysql 은 rpm 으로 설치된상태며, httpd 버젼은 apache2.x 버젼이며, mysql은 4.1, php5가 설치되어있는 상태입니다.
my.cnf 튜닝을 한상태지만, 원인을 좀잡을수가 없네요. 명령어로 확인해보면 slow 쿼리도 0인상태 입니다..
이쪽에 경험있으신분들의 많은 답변 부탁 드립니다 ㅠ.ㅠ
수고하세요.
Forums:
mysql이 cpu 100을 칠때
mysql이 cpu 100을 칠때 mysql 접속해서 show processlist; 했을때 어떤 내용들이 나오는지 살펴보세요.
개발자 닥달해서 쿼리튜닝 하는방법을 추천하려고 했는데 슬로쿼리가 없다고 되어 있군요.
슬로쿼리를 남기도록 설정되어 있는지, 슬로쿼리 기준 시간이 좀 크게 잡혀 있지 않은지 의심스럽습니다.
장비투자에 인색하지 않다면 하드웨어적으로 밀어부치는 방법도 있겠네요.
음..
솔루쿼리는 진짜 없는듯싶구요
show processlist;
+----+-------+-----------+-------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-------+-----------+-------+---------+------+-------+------------------+
| 1 | xxxxx | localhost | xxxxx | Sleep | 11 | | NULL |
| 3 | xxxxx | localhost | xxxxx | Sleep | 1 | | NULL |
| 4 | xxxxx | localhost | xxxxx | Sleep | 22 | | NULL |
| 5 | xxxxx | localhost | xxxxx | Sleep | 7 | | NULL |
| 6 | xxxxx | localhost | xxxxx | Sleep | 7 | | NULL |
| 7 | xxxxx | localhost | xxxxx | Sleep | 95 | | NULL |
| 8 | xxxxx | localhost | xxxxx | Sleep | 0 | | NULL |
| 10 | xxxxx | localhost | xxxxx | Sleep | 29 | | NULL |
| 11 | xxxxx | localhost | xxxxx | Sleep | 18 | | NULL |
| 12 | xxxxx | localhost | xxxxx | Sleep | 2 | | NULL |
| 13 | xxxxx | localhost | xxxxx | Sleep | 19 | | NULL |
| 14 | xxxxx | localhost | xxxxx | Sleep | 1 | | NULL |
| 15 | xxxxx | localhost | xxxxx | Sleep | 107 | | NULL |
| 16 | xxxxx | localhost | xxxxx | Sleep | 8 | | NULL |
| 17 | xxxxx | localhost | xxxxx | Sleep | 1 | | NULL |
| 18 | xxxxx | localhost | xxxxx | Sleep | 29 | | NULL |
| 19 | xxxxx | localhost | xxxxx | Sleep | 7 | | NULL |
| 22 | xxxxx | localhost | xxxxx | Sleep | 4 | | NULL |
| 23 | xxxxx | localhost | xxxxx | Sleep | 24 | | NULL |
| 28 | xxxxx | localhost | xxxxx | Query | 0 | NULL | show processlist |
+----+-------+-----------+-------+---------+------+-------+------------------+
대략
위의 테이블과 같습니다.
sleep 가 남는군요..
mysql cpu 가 100% 라는
mysql cpu 가 100% 라는 근거는 어떻게 되나요? mail 발송 때문에 soft irq 가 높아졌을 수도 있고 또는 iowait 이 높아져서 그럴 수도 있을 것 같군요.
top 결과와 vmstat 정보 같은 것들이 있으면 좀 더 도움이 될 수 있을 겁니다.
예
top 결과 입니다.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
27815 mysql 16 0 2196m 404m 4104 S 112 10.2 2:31.86 mysqld
26797 apache 15 0 226m 21m 4852 S 7 0.5 0:14.94 httpd
3375 root 15 0 5436 980 332 S 5 0.0 176:27.13 manager
13524 root 15 0 0 0 0 S 1 0.0 0:22.37 pdflush
26759 apache 15 0 226m 22m 4828 S 1 0.6 0:17.96 httpd
26761 apache 16 0 227m 22m 4856 S 1 0.6 0:20.13 httpd
26769 apache 15 0 226m 21m 5052 S 1 0.5 0:18.44 httpd
3977 nobody 15 0 6484 1480 552 S 0 0.0 87:38.90 encoder
26762 apache 15 0 221m 16m 4824 S 0 0.4 0:18.18 httpd
26770 apache 15 0 226m 21m 5040 S 0 0.5 0:15.61 httpd
26771 apache 15 0 226m 21m 4840 S 0 0.5 0:17.21 httpd
26795 apache 15 0 226m 22m 4880 S 0 0.6 0:15.77 httpd
26796 apache 15 0 231m 26m 5024 S 0 0.7 0:16.25 httpd
26798 apache 15 0 226m 21m 4888 S 0 0.5 0:14.41 httpd
27863 root 16 0 6148 1000 772 R 0 0.0 0:00.04 top
vmstat
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 160 36712 1161872 1737240 0 0 152 221 3 17 10 7 81 3
...
문제는 메일발송이나일때도..,
mysql 점유율는 0~300사이를 맴돈다는것입니다.
댓글 달기