LINUX.ORG.RU

Сотни TIME_WAIT

 , ,


0

0

3 недели не включал компьютер...решил послушать музыки mpd+ncmpcpp. Непонятно откуда взялось

netstat -tupna |grep  TIME_WAIT |tail
tcp        0      0 127.0.0.1:40212         127.0.0.1:6600          TIME_WAIT   -               
tcp        0      0 127.0.0.1:40202         127.0.0.1:6600          TIME_WAIT   -               
tcp        0      0 127.0.0.1:40262         127.0.0.1:6600          TIME_WAIT   -               
tcp        0      0 127.0.0.1:40176         127.0.0.1:6600          TIME_WAIT   -               
tcp        0      0 127.0.0.1:40182         127.0.0.1:6600          TIME_WAIT   -               
tcp        0      0 127.0.0.1:40268         127.0.0.1:6600          TIME_WAIT   -               
tcp        0      0 127.0.0.1:40254         127.0.0.1:6600          TIME_WAIT   -               
tcp        0      0 127.0.0.1:40298         127.0.0.1:6600          TIME_WAIT   -               
tcp        0      0 127.0.0.1:40292         127.0.0.1:6600          TIME_WAIT   -               
tcp        0      0 127.0.0.1:40294         127.0.0.1:6600          TIME_WAIT   - 
netstat -tupna |grep -c TIME_WAIT
165
Что характерно: .ncmpcpp/config
mpd_port = "6600"
.mpd/mpd.conf
# This setting is the TCP port that is desired for the daemon to get assigned
# to.
port                "6600"

ncmpcpp открывает каждый раз новый сокет? o_O

time_wait сами по себе не страшны — это умершие сокеты. таймаут можно относительно безболезненно уменьшить:

cat <<EOF>> /etc/sysctl.conf
net.ipv4.tcp_fin_timeout = 3
EOF
sysctl -p
но это, в данном случае, лечение симптомов, а не болячки.

beastie ★★★★★ ()
Ответ на: комментарий от beastie

ncmpcpp открывает каждый раз новый сокет? o_O

Хз как по научному... mpd устанавливает соединение, ибо:

tcp        0      0 127.0.0.1:34711         127.0.0.1:6600          ESTABLISHED 2295/ncmpcpp
Дальше начинается реальное непонятное. Сделал
.mpd/mpd.conf 
log_level           "verbose" 
Файл для лога стал распухать и пишет одно и тоже типа
tail -20 .mpd/mpd.log 
Mar 25 08:34 : client: [1] process command "status"
Mar 25 08:34 : client: [1] command returned 0
Mar 25 08:34 : client: [1264] opened from 127.0.0.1:35987
Mar 25 08:34 : client: [1264] process command "status"
Mar 25 08:34 : client: [1264] command returned 0
Mar 25 08:34 : client: [1264] process command "currentsong"
Mar 25 08:34 : client: [1264] command returned 0
Mar 25 08:34 : client: [1264] closed
Mar 25 08:34 : client: [1265] opened from 127.0.0.1:35988
Mar 25 08:34 : client: [1265] process command "status"
Mar 25 08:34 : client: [1265] command returned 0
Mar 25 08:34 : client: [1265] process command "currentsong"
Mar 25 08:34 : client: [1265] command returned 0
Mar 25 08:34 : client: [1265] closed
Mar 25 08:34 : client: [1266] opened from 127.0.0.1:35989
Mar 25 08:34 : client: [1266] process command "status"
Mar 25 08:34 : client: [1266] command returned 0
Mar 25 08:34 : client: [1266] process command "currentsong"
Mar 25 08:34 : client: [1266] command returned 0
Mar 25 08:34 : client: [1266] closed
Получается сокеты открываются всё время после истечения таймаута умирают открываются новые. Первый раз такое с mpd вижу.

time_wait сами по себе не страшны — это умершие сокеты. таймаут можно относительно безболезненно уменьшить:

Как бы я в курсе что такое time_wait, хотелось бы понять причину

windusjatnik ()
Ответ на: комментарий от windusjatnik

Грёбаный экибастуз... мне аж стыдно стало.
Как раз 3 недели назад раскоментировал в скрипте выводы в панель dwm

#ncmp(){ 
#        if ncmpcpp --now-playing '{{{%a - }%t}}|{%f}' |grep -w 'Cannot connect to mpd' > /dev/null
#   then 
#            echo -e "\x05[ Cannot connect to mpd\x05]"
#   else 
#           if ncmpcpp --now-playing '{{{%a - }%t}}|{%f}' |grep "-" > /dev/null 
#           then               
#                   ncmp="$(ncmpcpp --now-playing '{{{%a - }%t}}|{%f}' |cut -c1-45)"
#                    echo -e "\x08[ $ncmp\x08]"
#            else 
#                   echo -e "\x04[ ncmpcpp: playlist null\x04]"
#            fi
#        fi
#} 

windusjatnik ()
Ответ на: комментарий от windusjatnik

Толи криворукость автора ncmpcpp, толи ещё что-то. От CPP у меня уши вянут, т.ч. извеняй — с набегу не разберусь. Попробуй покрутить mpd_connection_timeout и mpd_communication_mode в конфиге ncmpcpp.

beastie ★★★★★ ()
Ответ на: комментарий от beastie

Лог показывал что у ncmpcpp спрашивают статус ну я выше написал почему так.
Сейчас закоментировал опять вывод такой

Mar 25 09:14 : client: [0] process command "status"
Mar 25 09:14 : client: [0] command returned 0
Mar 25 09:14 : client: [0] process command "lsinfo "/""
Mar 25 09:14 : client: [0] command returned 0
Mar 25 09:14 : client: [1] process command "status"
Mar 25 09:14 : client: [1] command returned 0
Mar 25 09:14 : client: [0] process command "lsinfo "/""
Mar 25 09:14 : client: [0] command returned 0
Mar 25 09:14 : client: [0] process command "lsinfo "/""
Mar 25 09:14 : client: [0] command returned 0
Ради интереса
ncmpcpp --now-playing '{{{%a - }%t}}|{%f}'
Black Sabbath - Paranoid
Mar 25 09:15 : client: [1] process command "status"
Mar 25 09:15 : client: [1] command returned 0
В netstat time_wait больше нет, т.е. было тупо скрипт запрашивал статус ncmpcpp. Вобщем сам забыл чего понастраивал.

windusjatnik ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.