MySql の「unauthenticated user」。

サイトが激重になった調査と解決のログ。

とりあえずログインとプロセスの確認。

[server ~]# top
top - 16:07:35 up 97 days, 14:55,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  37 total,   2 running,  35 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1998992k total,   577856k used,  1421136k free,   161764k buffers
Swap:        0k total,        0k used,        0k free,   295652k cached

平和だ。

ネットワークを疑う。

[server]# netstat -an
(略)

State "ESTABLISHED" が10個ほど。
そのうちの、全てが MySql のポート。


MySQL のプロセスを確認。

mysql> show processlist;

| 1401878 | root                 | localhost        | NULL | Query   |    0 | NULL  | show processlist | 
| 1401885 | unauthenticated user | xx.xx.xx.xx:pppp | NULL | Connect | NULL | login | NULL             | 
| 1401886 | unauthenticated user | xx.xx.xx.xx:pppp | NULL | Connect | NULL | login | NULL             | 
| 1401887 | unauthenticated user | xx.xx.xx.xx:pppp | NULL | Connect | NULL | login | NULL             | 
| 1401888 | unauthenticated user | xx.xx.xx.xx:pppp | NULL | Connect | NULL | login | NULL             | 
| 1401889 | unauthenticated user | xx.xx.xx.xx:pppp | NULL | Connect | NULL | login | NULL             | 
| 1401890 | unauthenticated user | xx.xx.xx.xx:pppp | NULL | Connect | NULL | login | NULL             | 

調べたところ
MySQLDNSの逆引きをする際に起こるらしい
参考) http://kennyqi.com/archives/70.html


対応もこのサイトの通りに

# vi /etc/my.cnf
[mysqld]
skip-name-resolve

で、すっきり解決しました。


だが何故突然、この現象が発生したのかは謎。
『「ESTABLISHED」10個、「unauthenticated user」が6個』は多いのか? 少ないのか?
MySQL のコネクションはデフォで100なのだから、この程度の量は問題ないと思ったのだが .....

謎は深まる。



ちなみに、MySQLのコネクション最大値。
( my.cnf に何も記述していない場合 )

mysql> show variables like 'max_connections'
    -> ;
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 100   | 
+-----------------+-------+
1 row in set (0.00 sec)