Найти - Пользователи
Полная версия: замедление работы с диском при увеличении нагрузки на сервер
Начало » Python для экспертов » замедление работы с диском при увеличении нагрузки на сервер
1 2 3 4
Budulianin
axe

Нельзя сказать точно, не зная, что у тебя там происходит. Тебе нужно смотреть, что делают процессы. В команде top много настроек есть. Прочитай про них подробнее. Могу предположить, что идёт борьба процессов за ресурсы ввода\вывода и они встают в очередь.
Lexander
http://www.pythian.com/blog/basic-io-monitoring-on-linux/
http://iusoltsev.wordpress.com/2010/08/05/linux-dstat-atop/
Результаты в студию.
Не только по диску, но и по процессору.

Код, возможно, тоже будет нужен, если это именно ваша программа тормозит.
axe
пока что торможение ещё не особо сильное.

запускал так:
dstat -tldnpms

исходный файл начал читаться 09:36:12,032
файл был прочитан 09:37:07,034
размер файла: 20.552.479 (20M)

производный файл записался в 09:37:21,199 за 4.856 секунды

текущие результаты dstat: http://pastebin.com/wAq9Tig6
o7412369815963
axe
“Оперируйте” в ram
Файлы построчно считываются в оперативку, где данные обрабытываются и выкладываются в другой файл. Что ещё можно в ram перенести? На вход файл, на выход файл - это суть обработчика.

Я имел ввиду вообще диск не юзать, например если это сервис трансформации файлов, то получать файл без сохранения, трансформировать и отправлять результат обратно.
Если все же без файлов не обойтись, но их размер не большой в 1 момент времени (старые удаляются), то можно заюзать RAM-диск.

Если б вы описали процесс от и до, то можно было-б что-нибудь ещё попридумывать.
Откуда файлы берутся? Что с ними происходит после обработки?

Кстати ещё можете смарт диска проверить, если диск дохлый то он может периодический сильно тормозить.
axe
o7412369815963
получать файл без сохранения,
не рассматривается совсем. данные приходят из различных источников и различными способами. после обработки исходные файлы бэкапятся и бережно хранятся.
o7412369815963
Если все же без файлов не обойтись, но их размер не большой
размер может быть любой. на проблемном клиенте файлы до 100мб.
o7412369815963
Если б вы описали процесс от и до, то можно было-б что-нибудь ещё попридумывать.
у меня паранойя, можно я подробнее про процесс не буду рассказывать? :)
да и переписывать приложение - не рассматирвается. программа уже на стадии когда только дебаг делается.
o7412369815963
Кстати ещё можете смарт диска проверить
smartctl попросил меня указать тип диска:
Smartctl: please specify device type with the -d option.
-d auto не прокатило, а hdparm не смог мне назвать тип:
HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device
HDIO_GET_IDENTITY failed: Inappropriate ioctl for device
o7412369815963
Тогда можете сделать простой костыль - замерять скорость обработки и при снижении ребутать приложение (раз это помагает)
axe
Не могу я сделать такой костыль.
1) Софт который лечится перезагрузкой - плохой софт, а нам надо делать хороший.
2) Лучший механизм тот, которого нет, а функции его выполняются. (это из ТРИЗа)
Если будет мониторинг, то его 1. надо настраивать и поднастраивать на каждом клиенте. 2. мониторинг может сломаться. 3. может сломаться перезагрузка основного приложения.
Это не считая того, что такой мониторинг надо ещё написать.

Однозначно надо решать исходную проблему.
Я постил сюда некоторые замеры: http://python.su/forum/post/118894/
из этого ничего нельзя выяснить?
Lexander
Их мало.
Не понятно в какой момент они сняты.
Нет, ничего нельзя выяснить.
o7412369815963
axe
Я постил сюда некоторые замеры:
Попробуйте atop, колонки busy, avio на строке диска (DSK)
Что будут выдавать во время простоя, нормальной производительности и тормозов? Думаю там можно будет увидеть виноваты ли диски.


так же обратите внимание на загрузку cpu, вдруг в проц упирается.
axe
Тормоза случаются ночью, а не каждую ночь хочется работать. :)
atop-а на клиенте пока нет и ставить без спросу не могу. Вопрос в процессе…
Как получится узнать что-то новое, отпишусь.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB