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

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

PS у меня на винде тоже были проблемы с производительностью правда с TurboGears - перешел на линукс и питон стал кушать меньше, но спустя какое-то время сделал пункты 1 и 2 == питон стал кушать почти одинаково на двух ПК
Cool-Di
pythonwin Спасибо.
Тогда еще один вопрос, как я могу сравнить производительность различный частей кода, или страниц сайта.
shiza
Единственное, что мне приходит в голову - это взять какой-нибудь монитор mysql, и поглядеть - какие запросы так грузят базу =)
От этого и плясать.
shiza
Другая мысль, более правильная - думаю что для дьянго наверняка есть какой-нибудь профайлер.

типа как-то так…
http://www.rkblog.rk.edu.pl/w/p/django-profiling-hotshot-and-kcachegrind/
или так
http://code.djangoproject.com/wiki/ProfilingDjango
Cool-Di
shiza
Там для того чтобы просмотривать результат профайленга нужен Kcachegrind, я так понял он только под Линукс, нашел для винды Wincachegrind, теперь остается проблема чтобы переконвектировать file.prof > cachegrind.out.01
Интересно кто-нибудь занимался профайленгом своего кода ?
shiza
да его наверное можно и так поглядеть - в блокноте. Нет? =)

Если нет, то в доке по нему написано http://docs.python.org/library/hotshot.html - как на экран вывести нужные циферки =)
Александр Кошелев
Правильно посоветовали. Надо профилировать код. Через hotshot или cProfile, что предпочтительней. Результаты смотреть через сам питон или debug_toolbar.
slav0nic
Cool-Di
выведи дебаг и глянь запросы, оттюнь mysql (советую перевести таблицы в InnoDB, +прогнать mysqltune.pl), хотя судя по всему проблема в коде, можешь попробовать прикрутить кеш, кешировать шаблоны, глянь по логам (или awstats) на какие страницы чаще всего осуществляются заходы и просмотри вьюшки.
статику надеюсь не джанга отдаёт?
+юзай ab для бенчмарка производительности, проверь сколько запросов в секунду тянет сервер, можно поиграться с методом запуска джанги (threaded, prefork)
Cool-Di
запускаю джанго командой start manage.py runfcgi protocol=scgi method=threaded host=10.17.30.16 port=3033 prefork не работает, проблемы с флупом в винде. Апатч с мод_питоном тоже не смог запустить, фаст сцги тоже чтото не пошел, но как мне сказали мой способ запуска севрера должен быть “нормальным”.

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