У меня уникальная проблема с одним из моих серверов. Статистика дисковых операций ввода-вывода постоянно увеличивается в течение последних двух недель. Смотрите этот график от Мунина:
На приборной панели Linode я вижу более детальную картину дискового ввода-вывода. Вот циклический / ритмический график (дневной интервал). Но обратите внимание, что, хотя это кажется циклическим, в течение нескольких недель среднее количество операций ввода-вывода на диск постоянно увеличивается (см. График выше):
Теперь я сделал iotop
и увидел это kjournald
- единственный процесс, выполняющий запись для дискового ввода-вывода (кроме случайных rsyslogd
- но частота дискового ввода / вывода kjournald
намного, намного выше). На графиках выше компонент чтения ввода-вывода практически равен нулю.
Почему kjournald
писать, даже если нет другого процесса записи? Почему размер записей увеличивается с каждым днем?
Еще одна подсказка: свободная память также монотонно уменьшается, а количество «буферов» увеличивается. Смотрите этот график:
PS: сервер только Apache. Журналы доступа отключены, но журналы ошибок включены. Обслуживает около 80 запросов в секунду. Мы используем Redis как очередь. Мой диск использует ext3.
Прежде всего, у меня всегда есть проблема с просмотром данных, которые отслеживались слишком редко, так как между периодами выборки часто скрывается очень полезная информация. Однако здесь это не обязательно может быть проблемой.
В любом случае один счетчик редко может рассказать всю историю. Поскольку ваш дневной график действительно немного увеличивается в течение дня, по крайней мере, что-то меняется достаточно быстро, чтобы увидеть изменения. Что вы не можете сказать по своим графикам, потому что они НЕ достаточно детализированы, все меняется плавно или, возможно, в ступенчатой функции? Значение остается неизменным в течение 50 секунд, а затем подскакивает? Вы просто не можете сказать, и если есть скачки, вы должны иметь возможность соотносить это с другими измерениями системы.
Я бы рекомендовал установить collectl и дать ему поработать пару часов. Затем, используя colplot, который является частью collectl-utils, вы можете получить подробные графики (с 10-секундными интервалами) процессора, диска, сети, памяти, nfs, tcp, сокетов и, возможно, одной или двух вещей, которые я забыл. Вы также можете углубиться в то, что происходит с вашими плитами и процессами.
Теперь вы можете взглянуть на эти графики и увидеть гораздо больше деталей, чем вы когда-либо увидите на графиках, которые вы получаете от rrdtool. Конечно, если в сюжете что-то выглядит интересным, вы также можете воспроизвести собранный текст как текст с отметкой времени и углубиться в него.
-отметка
Дикий выстрел в темноте, так как я понятия не имею, что делает ваш сервер:
Ваш сервер является веб-сервером? Возможно, у него есть часто посещаемая страница, которая регистрирует доступ к обычному текстовому файлу (или, возможно, к серверу SQLite?), И сценарий PHP анализирует этот файл во время каждой загрузки страницы и записывает для посещения этого файла? Затем этот файл растет и растет, как и количество записей.
Хотя это кажется маловероятным, поскольку вы не наблюдаете никаких процессов httpd. В любом случае, может быть, происходит что-то подобное? Какой-то регулярно анализируемый файл растет и растет?
РЕДАКТИРОВАТЬ: Вы уже пробовали очень удобный инструмент blktrace? С его помощью вы можете отслеживать ввод-вывод и видеть, какие процессы обращаются к диску и почему. Пытаться btrace /dev/sda
или какой у вас диск. btrace
команда связана с blktrace
пакет по крайней мере в Debian / Ubuntu, если он еще не установлен для вас.