Re: transmission-daemon и постоянные обращения к диску
On 29/03/17 11:22 AM, dimas wrote: > а теперь самое интересное: если опцию -e (--log-file) вообще убрать, то сабж > пишет в syslog, при этом не дергая диск, и вообще хорошо себя ведет. > стало быть, механизм записи в файл где-то криво реализован. > а может, кто подскажет, как syslog наладить, чтобы от сабжа записи в отдельный > файл писал? должно быть как-то просто, но опять тыркаться, а вдруг кто-то > сразу > знает, как правильно)) > очень просто в /etc/rsyslog.d/transmission.conf if $programname == 'transmission-daemon' then /var/log/transmission.log if $programname == 'transmission-daemon' then stop И проверить, что строка $IncludeConfig /etc/rsyslog.d/*.conf находится над остальными правилами
Re: transmission-daemon и постоянные обращения к диску
а теперь самое интересное: если опцию -e (--log-file) вообще убрать, то сабж пишет в syslog, при этом не дергая диск, и вообще хорошо себя ведет. стало быть, механизм записи в файл где-то криво реализован. а может, кто подскажет, как syslog наладить, чтобы от сабжа записи в отдельный файл писал? должно быть как-то просто, но опять тыркаться, а вдруг кто-то сразу знает, как правильно))
Re: transmission-daemon и постоянные обращения к диску
2017-087 17:53 Tim Sattarovwrote: > Проще нужно быть :) > strace -p `pidof transmission-daemon` -f -o stats оу, спасибо! я не сильно вдумчиво ман курил, так-то да, оно, конечно, удобнее > Интересно посмотреть на что указывает 3-й FD в твоем случае ? с логом в /dev/null srv> ~$ ll /proc/11226/fd/[0-3] lrwx-- 1 srv srv 64 мар 29 12:36 /proc/11226/fd/0 -> /dev/null lrwx-- 1 srv srv 64 мар 29 12:36 /proc/11226/fd/1 -> /dev/null lrwx-- 1 srv srv 64 мар 29 12:36 /proc/11226/fd/2 -> /dev/null l-wx-- 1 srv srv 64 мар 29 12:36 /proc/11226/fd/3 -> /dev/null с логом в файл - на него, как и положено: srv> ~$ ll /proc/21183/fd/[0-3] lrwx-- 1 srv srv 64 мар 29 12:59 /proc/21183/fd/0 -> /dev/null lrwx-- 1 srv srv 64 мар 29 12:59 /proc/21183/fd/1 -> /dev/null lrwx-- 1 srv srv 64 мар 29 12:59 /proc/21183/fd/2 -> /dev/null l-wx-- 1 srv srv 64 мар 29 12:59 /proc/21183/fd/3 -> /var/log/transmission.log
Re: transmission-daemon и постоянные обращения к диску
ничего интересного. анонсит раздачи на трекерах, к некоторым could not connect, dht гоняет туда-сюда, ищет и находит пиров - в общем, нормальный ход вещей, ничего необычного 2017-088 09:04 Ильяwrote: > Может опция --log-debug покажет что то
Re: transmission-daemon и постоянные обращения к диску
2017-088 10:07 Alexander Galaninwrote: > Он постоянно пишет в /var/lib/transmission-daemon/.config обновление > DHT-таблицы, состояния торрентов. Может в этих файлах дело? не-а. глянул find -mtime -1 -exec stat -c "%z %n" "{}" \; - dht.dat в 2 часа обновился, resume-файлы в 8 и 11, stats.json вот сейчас (видимо, при вызове transmission-remote -l), settings,json тоже в 2 часа. в общем, явно не каждую секунду)) да и отправка лога в /dev/null однозначно решает проблему, так что надо там копать
Re: transmission-daemon и постоянные обращения к диску
On Tue, 28 Mar 2017 22:08:31 +0300 dimaswrote: > поставил iotop, и сабж стал постоянно светиться в столбце "write". подумал, > куда он там может пытаться писать Он постоянно пишет в /var/lib/transmission-daemon/.config обновление DHT-таблицы, состояния торрентов. Может в этих файлах дело? -- Alexander Galanin
Re: transmission-daemon и постоянные обращения к диску
Может опция --log-debug покажет что то В Tue, 28 Mar 2017 22:08:31 +0300 dimasпишет: > подозрение: что-то в логи тоннами шлет. в syslog он не > пишет, вроде как, а собственный его лог-файл я посмотрел - > там несколько строчек всего, и ничего нового не появляется. > в опциях стояло --log-error, именно так все и работало > (несколько записей про одну раздачу, которая не найдена на > таком-то трекере) однако же, после того как
Re: transmission-daemon и постоянные обращения к диску
On 28/03/17 05:17 PM, dimas wrote: > однако же, поигрался тут еще по-всякому и нашел вот какую вещь: если запустить > strace -p 5363,5364,5365,5385 -c &> stats Проще нужно быть :) strace -p `pidof transmission-daemon` -f -o stats > ну и так далее, каждую секунду он зовется и успешно синкает бедный диск. [1] fsync вызывается толко на один filehandle. если он пуст то синкать нечего и ничего не пишется. Это как я понимаю fsync Сейчас ещё раз посморел на вывод strace: ~# strace -f -p `pidof transmission-daemon` 2>&1 | grep fsync [pid 1831] fsync(2)= -1 EINVAL (Invalid argument) [pid 1831] fsync(2)= -1 EINVAL (Invalid argument) [pid 1831] fsync(2)= -1 EINVAL (Invalid argument) [pid 1831] fsync(2)= -1 EINVAL (Invalid argument) [pid 1831] fsync(2)= -1 EINVAL (Invalid argument) [pid 1831] fsync(2)= -1 EINVAL (Invalid argument) ^C ~# file /proc/1831/fd/2 /proc/1831/fd/2: broken symbolic link to socket:[27432] lsof указывает на unix socket: transmiss 1831 debian-transmission2u unix 0x9fe1d7728c00 0t0 27432 type=STREAM то есть у меня обработкой вывода занимается systemd и мне пофиг, fsync на unix socket не работает. однозначно бага Интересно посмотреть на что указывает 3-й FD в твоем случае ? > [pid 5363] 00:01:24 fsync(3) = 0 file /proc/5363/fd/3
Re: transmission-daemon и постоянные обращения к диску
он плодит еще кучку потомков, для надежности запустил вот так: strace -e open,write,close -o t-d.strace transmission-daemon \ --config-dir=.config/transmission-daemon/ -ep \ -e /var/log/transmission.log --log-error -f выхлоп в аттаче. ничерта интересного. в лог пишет несчастную одну строчку. шыштемд у меня нету, в syslog пару раз "closing session" выдал при остановке. однако же, поигрался тут еще по-всякому и нашел вот какую вещь: если запустить strace -p 5363,5364,5365,5385 -c &> stats получаем примерно по одному fsync в секунду (см. файл stats) далее, при логе в /var/log/transmission: srv> ~$ strace -p 5363,5364,5365,5385 -e fsync -t strace: Process 5363 attached strace: Process 5364 attached strace: Process 5365 attached strace: Process 5385 attached [pid 5363] 00:01:18 fsync(3) = 0 [pid 5363] 00:01:20 fsync(3) = 0 [pid 5363] 00:01:21 fsync(3) = 0 [pid 5363] 00:01:22 fsync(3) = 0 [pid 5363] 00:01:23 fsync(3) = 0 [pid 5363] 00:01:24 fsync(3) = 0 ну и так далее, каждую секунду он зовется и успешно синкает бедный диск. [1] если же лог направить в /dev/null, общая картина та же, за исключением того, что все эти fsync'и завершаются с ошибкой: srv> ~$ strace -p 11226 -e fsync -t strace: Process 11226 attached 00:09:30 fsync(3) = -1 EINVAL (Invalid argument) 00:09:31 fsync(3) = -1 EINVAL (Invalid argument) 00:09:32 fsync(3) = -1 EINVAL (Invalid argument) 00:09:33 fsync(3) = -1 EINVAL (Invalid argument) 00:09:34 fsync(3) = -1 EINVAL (Invalid argument) 00:09:35 fsync(3) = -1 EINVAL (Invalid argument) вот она где собака порылась! таким образом, имеем вот что: если лог-файл у нас на диске, то бешеная программа каждую секунду упорно синкает этот самый диск! /dev/null тоже пытается упорно синкать, но ему все равно)) видимо, где-то в коде, отвечающем за ведение логов, должно было быть что-то типа: раз в секунду сбрасываем некий буфер (или как его правильно) в лог-файл и синкаем диск, только из-за ошибки оно синкается независимо от того, писали мы в файл или нет. [1] http://man7.org/linux/man-pages/man2/fsync.2.html 2017-087 15:58 Tim Sattarovwrote: > я бы проверил ещё strace'ом, что он пишет и куда > strace -e write -p `pidof transmission-daemon` > и вот сюда ещё: > journalctl -u transmission-daemon.service > > у меня transmission-daemon из тестинга: > > # apt-cache policy transmission-daemon > transmission-daemon: > Installed: 2.92-2 > Candidate: 2.92-2 > Version table: > *** 2.92-2 500 > 500 https://cloudfront.debian.net/debian unstable/main amd64 > Packages > 400 https://cloudfront.debian.net/debian testing/main amd64 Packages > 100 /var/lib/dpkg/status > > > весь запуск и опции управляются через systemd: > > [Unit] > Description=Transmission BitTorrent Daemon > After=network.target > > [Service] > User=debian-transmission > Type=notify > ExecStart=/usr/bin/transmission-daemon -f --log-error > ExecStop=/bin/kill -s STOP $MAINPID > ExecReload=/bin/kill -s HUP $MAINPID > > [Install] > WantedBy=multi-user.target > > t-d.strace Description: Binary data stats Description: Binary data
Re: transmission-daemon и постоянные обращения к диску
2017-087 22:48 Igor Savlookwrote: > Тоесть он лог постоянно пишет на диск не прекращая? После того как ты > лог направил в /dev/null все ок? именно так! причем я хз, что он туда пишет, в лог-файле ничего нового не появляется, но в iotop при этом постоянная запись от процесса t-d. с lsof я не особо разобрался, у него какой-то наркоманский синтаксис, плюс он еще сетевые все запросы до кучи сыплет, и -X не помогает. но факт в том, что после -e /dev/null все успокоилось, да
Re: transmission-daemon и постоянные обращения к диску
On 28/03/17 03:08 PM, dimas wrote: > поставил iotop, и сабж стал постоянно светиться в столбце "write". подумал, > куда он там может пытаться писать - первое подозрение: что-то в логи тоннами > шлет. в syslog он не пишет, вроде как, а собственный его лог-файл я посмотрел > - > там несколько строчек всего, и ничего нового не появляется. в опциях стояло > --log-error, именно так все и работало (несколько записей про одну раздачу, > которая не найдена на таком-то трекере) > однако же, после того как в /etc/default/сабж я задал -e /dev/null и > перезапустил - он перестал насиловать мой несчастный диск. а при заданном > лог-файле не только диод моргал, но и, если ухо приложить, слышно было, как > бедный диск заводится каждый раз. я бы проверил ещё strace'ом, что он пишет и куда strace -e write -p `pidof transmission-daemon` и вот сюда ещё: journalctl -u transmission-daemon.service у меня transmission-daemon из тестинга: # apt-cache policy transmission-daemon transmission-daemon: Installed: 2.92-2 Candidate: 2.92-2 Version table: *** 2.92-2 500 500 https://cloudfront.debian.net/debian unstable/main amd64 Packages 400 https://cloudfront.debian.net/debian testing/main amd64 Packages 100 /var/lib/dpkg/status весь запуск и опции управляются через systemd: [Unit] Description=Transmission BitTorrent Daemon After=network.target [Service] User=debian-transmission Type=notify ExecStart=/usr/bin/transmission-daemon -f --log-error ExecStop=/bin/kill -s STOP $MAINPID ExecReload=/bin/kill -s HUP $MAINPID [Install] WantedBy=multi-user.target
Re: transmission-daemon и постоянные обращения к диску
On Tue, 2017-03-28 at 22:08 +0300, dimas wrote: > алярм всем, кто пользует transmission-daemon, по крайней мере > актуальную версию > из тестинга! > сегодня заметил, что на сервере постоянно мигает диод доступа к > диску, где-то > раз в секунду. опытным путем быстро выяснилось, что после остановки > сабжа > перестает мигать, с запуском - начинает. фишка в том, что диод > отвечает за > системный диск, на котором кроме самой системы ничего нет, вся > файлопомойка (и > раздачи) - на внешних дисках. > поставил iotop, и сабж стал постоянно светиться в столбце "write". > подумал, > куда он там может пытаться писать - первое подозрение: что-то в логи > тоннами > шлет. в syslog он не пишет, вроде как, а собственный его лог-файл я > посмотрел - > там несколько строчек всего, и ничего нового не появляется. в опциях > стояло > --log-error, именно так все и работало (несколько записей про одну > раздачу, > которая не найдена на таком-то трекере) > однако же, после того как в /etc/default/сабж я задал -e /dev/null и > перезапустил - он перестал насиловать мой несчастный диск. а при > заданном > лог-файле не только диод моргал, но и, если ухо приложить, слышно > было, как > бедный диск заводится каждый раз. > баг сейчас накатаю, если еще нету, а пока что все обратите внимание, > если вам > дороги ваши винты > Тоесть он лог постоянно пишет на диск не прекращая? После того как ты лог направил в /dev/null все ок?
transmission-daemon и постоянные обращения к диску
алярм всем, кто пользует transmission-daemon, по крайней мере актуальную версию из тестинга! сегодня заметил, что на сервере постоянно мигает диод доступа к диску, где-то раз в секунду. опытным путем быстро выяснилось, что после остановки сабжа перестает мигать, с запуском - начинает. фишка в том, что диод отвечает за системный диск, на котором кроме самой системы ничего нет, вся файлопомойка (и раздачи) - на внешних дисках. поставил iotop, и сабж стал постоянно светиться в столбце "write". подумал, куда он там может пытаться писать - первое подозрение: что-то в логи тоннами шлет. в syslog он не пишет, вроде как, а собственный его лог-файл я посмотрел - там несколько строчек всего, и ничего нового не появляется. в опциях стояло --log-error, именно так все и работало (несколько записей про одну раздачу, которая не найдена на таком-то трекере) однако же, после того как в /etc/default/сабж я задал -e /dev/null и перезапустил - он перестал насиловать мой несчастный диск. а при заданном лог-файле не только диод моргал, но и, если ухо приложить, слышно было, как бедный диск заводится каждый раз. баг сейчас накатаю, если еще нету, а пока что все обратите внимание, если вам дороги ваши винты