Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 18, 2013 21:10:57

axe
От:
Зарегистрирован: 2008-08-07
Сообщения: 256
Репутация: +  0  -
Профиль   Отправить e-mail  

замедление работы с диском при увеличении нагрузки на сервер

Есть модуль, который перерабатывает текстовые файлы. Примерный алгоритм:
1) берём строчку через file.readline(), разбиваем по разделителю, берём некоторые поля, немного преобразуем, складываем в список, закрываем дескриптор файла.
2) открываем новый файл, дампим всё что было в массиве в новый файл. закрываем дескриптор.

Всё работает стабильно до тех пор, пока на сервере не возникает нагрузка. Построчное чтение начинает жутко тормозить. И либо будет тормозить ооочень долго (скапливается очередь файлов к обработке, что не очень хорошо, т.к. желателен real time), либо помогает перезапуск программы.
Где и как искать проблему?



Офлайн

#2 Ноя. 18, 2013 23:10:03

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

замедление работы с диском при увеличении нагрузки на сервер

Скорее всего это io “тормозит”, т.е. диск не справляется.
Если это виртуалка (не ssd), то не удивительно.

“Оперируйте” в ram если это возможно.

Офлайн

#3 Ноя. 19, 2013 08:01:09

axe
От:
Зарегистрирован: 2008-08-07
Сообщения: 256
Репутация: +  0  -
Профиль   Отправить e-mail  

замедление работы с диском при увеличении нагрузки на сервер

o7412369815963
Скорее всего это io “тормозит”, т.е. диск не справляется.
Если это виртуалка (не ssd), то не удивительно.
Может и диск (это вроде как большой hdd), но надо добыть доказательства. Положим, клиент решится и поставит ssd-диск, а приложение продолжит тормозить.. нехорошо.

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



Офлайн

#4 Ноя. 19, 2013 08:34:57

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

замедление работы с диском при увеличении нагрузки на сервер

axe
Может и диск (это вроде как большой hdd), но надо добыть доказательства. Положим, клиент решится и поставит ssd-диск, а приложение продолжит тормозить.. нехорошо.
Ну запустите какой-нибудь мониторинг. Хотя бы atop в режиме демона.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#5 Ноя. 19, 2013 08:36:36

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

замедление работы с диском при увеличении нагрузки на сервер

axe
но надо добыть доказательства.

Следи за процессами в момент нагрузки и поймёшь в чём причина



Офлайн

#6 Ноя. 19, 2013 09:55:33

axe
От:
Зарегистрирован: 2008-08-07
Сообщения: 256
Репутация: +  0  -
Профиль   Отправить e-mail  

замедление работы с диском при увеличении нагрузки на сервер

PooH
Ну запустите какой-нибудь мониторинг. Хотя бы atop в режиме демона.
Budulianin
Следи за процессами в момент нагрузки и поймёшь в чём причина
Процесс периодически появляется в топе с загрузкой процессора 100%, но это нормально. Оперативка используется так: 2Гб без особой нагрузки и 4Гб, когда нагрузка растёт, но и это тоже нормально.

Существенно не понятно: почему из разных действий в программе растёт время именно работы с диском, а все остальные действия выполняются с примерно тем же временем как на системе без нагрузки.
Как можно следить за диском?



Офлайн

#7 Ноя. 19, 2013 12:43:14

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

замедление работы с диском при увеличении нагрузки на сервер

axe
Как можно следить за диском?
atop отображает активность диска. есть еще iotop
кстати, это таки виртуалка, или на железе?



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#8 Ноя. 19, 2013 12:53:18

axe
От:
Зарегистрирован: 2008-08-07
Сообщения: 256
Репутация: +  0  -
Профиль   Отправить e-mail  

замедление работы с диском при увеличении нагрузки на сервер

PooH, спасибо!

PooH
это таки виртуалка, или на железе?
железо.
iotop красиво выглядит, попробую посмотреть.
yum не нашёл atop.



Офлайн

#9 Ноя. 19, 2013 14:24:01

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

замедление работы с диском при увеличении нагрузки на сервер

axe
почему из разных действий в программе растёт время именно работы с диском
hdd механические действия выполняет - медленно работает



Офлайн

#10 Ноя. 19, 2013 14:32:11

axe
От:
Зарегистрирован: 2008-08-07
Сообщения: 256
Репутация: +  0  -
Профиль   Отправить e-mail  

замедление работы с диском при увеличении нагрузки на сервер

Budulianin
hdd механические действия выполняет - медленно работает
я бы так и подумал, если бы после рестарта программа не начинала читать файлы быстро.
например, файл 60 мб читается около 1 сек. начинается нагрузка и такой же файл читается, например, 10-20 минут.
перегружаю программу - и сразу же после перезагрузки файлы снова читаются быстро не смотря на нагрузку.

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



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version