我使用狮身人面像搜索引擎,有时当我跑步时
show threads;
我看到一个线程,如下图所示,线程中的“Net_Idle”状态,其“时间”值上升到 100 秒,在某些情况下上升到 500 秒,然后自动消失。
这个线程是什么,它何时以及为什么运行?
这意味着通过 sphinxql 协议有一个开放的连接。如果您同时打开 2 个与您的 searchd 的连接,您可以轻松地重现它,然后在其中任何一个中您都会看到另一个有连接,如果您在那里不做任何事情,则状态将为 net_idle。例如:
Tab 1:
[snikolaev@dev01 ~]$ mysql -P9314 -h0
mysql>
Tab 2:
[snikolaev@dev01 ~]$ mysql -P9314 -h0
mysql> show threads;
+-------+----------+----------+----------+--------------+
| Tid | Proto | State | Time | Info |
+-------+----------+----------+----------+--------------+
| 16626 | sphinxql | query | 0.000001 | show threads |
| 16598 | sphinxql | net_idle | 3.774544 | |
+-------+----------+----------+----------+--------------+
2 rows in set (0.00 sec)
如果您不知道谁保持连接打开,您可以使用 lsof、netstat 和 ps 或其他执行相同操作的工具来追踪它,例如:
[snikolaev@dev01 ~]$ lsof -p 14267|grep TCP
searchd_o 14267 snikolaev 6u IPv4 568694105 0t0 TCP *:9314 (LISTEN)
searchd_o 14267 snikolaev 13u IPv4 568804452 0t0 TCP localhost:9314->localhost:24228 (ESTABLISHED)
[snikolaev@dev01 ~]$ sudo netstat -apn|grep 24228
tcp 0 0 127.0.0.1:9314 127.0.0.1:24228 ESTABLISHED 14267/./searchd_old
tcp 0 0 127.0.0.1:24228 127.0.0.1:9314 ESTABLISHED 28949/mysql
[snikolaev@dev01 ~]$ ps aux|grep 28949
518 28949 0.0 0.0 234088 10596 pts/58 S+ 23:49 0:00 mysql -P9314 -h0
在我的情况下,我可以看到连接来自“mysql”,在你的情况下它可能会有所不同。