Что такое поток сфинксов с состоянием net_idle? - PullRequest
0 голосов
/ 04 июля 2018

Я использую поисковую систему sphinx и иногда при запуске

show threads;

Я вижу один поток, подобный картинке ниже, с состоянием «Net_Idle» среди потоков, что его значение «Время» увеличивается до 100 секунд, а в некоторых случаях до 500 секунд, а затем автоматически исчезает.

enter image description here

Что это за нить, когда и почему она работает?

1 Ответ

0 голосов
/ 05 июля 2018

Это означает, что есть открытое соединение через протокол sphinxql. Вы можете легко воспроизвести его, если вы одновременно откроете 2 соединения с вашим searchd, тогда в любом из них вы увидите, что у другого есть соединение, и если вы ничего не сделаете, состояние будет net_idle. E.g.:

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 или другие инструменты, которые делают то же самое, чтобы отследить это, например ::100100

[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", в вашем случае оно может быть другим.

...