Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 13, 2008 07:28:26

Cool-Di
От:
Зарегистрирован: 2008-12-13
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Производительность сервера

Здравствуйте, я начинающий программист на джанго, столкнулся с проблеммой загруженности процессора.
При количестве пользователей онлайн более 40 человек, процессор загружен на 100%, что приводит к медленной работе сайта. Сайт в локальной сети на моем компьютере.
Мой компьютер: проц - Атлон ХП 2200+, Виндовс хп (не заточен под сервер), винчестер старенький.
Сервер: LightTPD, scgi, MySQL
Загруженность процессора: MySQL -10%, Python - 50%, System - 25% остальное фаервол и др.

Вообщем вопрос: почему у меня такая большая загруженность процессора при таком малом количестве пользователей ?
Я плохой программист? Мой компьютер слишком слаб для сервера? или еще что нибудь.



Офлайн

#2 Дек. 13, 2008 07:48:10

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

Производительность сервера

скорее всего дело не в винде, а в твоем коде
1) исправь немного код - проблема с производительностью часто лежит именно здесь
2) смени HDD на новый

PS у меня на винде тоже были проблемы с производительностью правда с TurboGears - перешел на линукс и питон стал кушать меньше, но спустя какое-то время сделал пункты 1 и 2 == питон стал кушать почти одинаково на двух ПК



Отредактировано (Дек. 13, 2008 07:49:04)

Офлайн

#3 Дек. 13, 2008 07:54:24

Cool-Di
От:
Зарегистрирован: 2008-12-13
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Производительность сервера

pythonwin Спасибо.
Тогда еще один вопрос, как я могу сравнить производительность различный частей кода, или страниц сайта.



Офлайн

#4 Дек. 13, 2008 08:10:08

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Производительность сервера

Единственное, что мне приходит в голову - это взять какой-нибудь монитор mysql, и поглядеть - какие запросы так грузят базу =)
От этого и плясать.



Офлайн

#5 Дек. 13, 2008 08:12:51

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Производительность сервера

Другая мысль, более правильная - думаю что для дьянго наверняка есть какой-нибудь профайлер.

типа как-то так…
http://www.rkblog.rk.edu.pl/w/p/django-profiling-hotshot-and-kcachegrind/
или так
http://code.djangoproject.com/wiki/ProfilingDjango



Отредактировано (Дек. 13, 2008 08:19:44)

Офлайн

#6 Дек. 13, 2008 09:27:15

Cool-Di
От:
Зарегистрирован: 2008-12-13
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Производительность сервера

shiza
Там для того чтобы просмотривать результат профайленга нужен Kcachegrind, я так понял он только под Линукс, нашел для винды Wincachegrind, теперь остается проблема чтобы переконвектировать file.prof > cachegrind.out.01
Интересно кто-нибудь занимался профайленгом своего кода ?



Офлайн

#7 Дек. 13, 2008 10:46:49

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Производительность сервера

да его наверное можно и так поглядеть - в блокноте. Нет? =)

Если нет, то в доке по нему написано http://docs.python.org/library/hotshot.html - как на экран вывести нужные циферки =)



Отредактировано (Дек. 13, 2008 10:48:39)

Офлайн

#8 Дек. 13, 2008 12:10:21

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Производительность сервера

Правильно посоветовали. Надо профилировать код. Через hotshot или cProfile, что предпочтительней. Результаты смотреть через сам питон или debug_toolbar.



Офлайн

#9 Дек. 13, 2008 13:05:15

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Производительность сервера

Cool-Di
выведи дебаг и глянь запросы, оттюнь mysql (советую перевести таблицы в InnoDB, +прогнать mysqltune.pl), хотя судя по всему проблема в коде, можешь попробовать прикрутить кеш, кешировать шаблоны, глянь по логам (или awstats) на какие страницы чаще всего осуществляются заходы и просмотри вьюшки.
статику надеюсь не джанга отдаёт?
+юзай ab для бенчмарка производительности, проверь сколько запросов в секунду тянет сервер, можно поиграться с методом запуска джанги (threaded, prefork)

Офлайн

#10 Дек. 13, 2008 17:13:20

Cool-Di
От:
Зарегистрирован: 2008-12-13
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Производительность сервера

запускаю джанго командой start manage.py runfcgi protocol=scgi method=threaded host=10.17.30.16 port=3033 prefork не работает, проблемы с флупом в винде. Апатч с мод_питоном тоже не смог запустить, фаст сцги тоже чтото не пошел, но как мне сказали мой способ запуска севрера должен быть “нормальным”.

На счет мускула, думаю что не внем проблема раз он мало загружает процессор (максимум на 10%) или я не прав ?
Что касается остального для меня темный лес. Пытаюсь сейчас профайлить, но пока что смутно разбираюсь что оно мне выдает.



Отредактировано (Дек. 13, 2008 17:14:21)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version