Назад | Перейти на главную страницу

Определить основную причину поломки канала в Linux?

У меня есть веб-приложение, работающее на некоторых серверах, у которых есть файлы журнала Apache на томе SAN OCFS2. Внутреннее ведение журнала веб-приложений выполняется с помощью log4perl в режиме конвейера с cronolog на другом конце канала для обработки ротации файла журнала. Время от времени, около полуночи, при ротации файлов журналов на некоторых серверах происходит сбой канала, из-за чего Apache не может вести журнал и генерирует всевозможные предупреждения и плохие вещи.

Мне интересно, есть ли способ определить основную причину поломки трубы. DTrace звучит так, как будто он мог бы это сделать при некотором умном программировании, но я не уверен.

У кого-нибудь есть идеи?

Спасибо,

Кендалл

Я предполагаю, что если chronolog регистрирует сломанную трубу, возможно, у вас есть logrotate или какой-то другой ротатор, конкурирующий с ним. logrotate ротация журналов apache путем закрытия и повторного открытия файлов журналов (что заставляет его создавать новые файлы после того, как logrotate переместил старые), что может привести к поломке канала. Вы можете попробовать apache2ctl graceful (это то, что logrotate использует в debian, ваш дистрибутив может отличаться), чтобы узнать, не вызывает ли это условие.