Найти - Пользователи
Полная версия: Оптимизация работы сервера и базы данных
Начало » Django » Оптимизация работы сервера и базы данных
1
Strashko
Я экспериментирую с сайтом на Django+Postgresql.
Сайт находится на VDS и я его делаю изначально удаленно с помощью PyCharm.
Заметил следующую странность.
Некоторые ссылки с определенной страницы сервер отдает слишком долго, жду до 10 секунд. Причем независимо от сервера - Nginx+uWSGI или встроенный (debug = true или False, так же без разницы).
При этом все функции вьюхи отрабатываются быстро - примерно полсекунды.
На терминале в PyCharm я уже вижу весь полученный HttpResponse.content, затем наступает длинная пауза…. И только затем появляется строчка типа:
“GET /creative/add/case/ HTTP/1.1” 200 81396
И в этот же момент страницу загружает браузер.
В логах uWSGI указано правильное время - именно те самые 10 сек. Хотя, как я говорил, все мои функции отработаны менее чем за 1 сек.
Мне не понятна эта длинная пауза. Ведь контент отрендерен, все обращения к базе выполнены. Что может быть причиной задержки?
ZerG
Хороший инет? ВДС?
Еще 100 причин.

Ведите разработку локально.
Strashko
ZerG
Ведите разработку локально.
Не, ну это не решает проблему. От того, что у меня локально все будет чики-пуки, я не научусь выявлять проблему на VDS. Меня интересует методика и инструментарий решения таких задач. Ну допустим, я процессы могу посмотреть на убунте. Но я не понимаю, как их правильно интерпретировать. Только в общих чертах.
PEHDOM
Strashko
От того, что у меня локально все будет чики-пуки, я не научусь выявлять проблему на VDS
А вы для начала убедитесь что локально у вас все “чики-пуки”,чтобы хтябы понмать понимать в какую сторону копать, дальше. Толи проблемы С VDS, толи с инетом, толи в коде сервера гдето косяк.
Strashko
PEHDOM
чтобы хтябы понмать понимать в какую сторону копать
Я ваш совет принял к сведению. Поставим вопрос иначе.
Допустим, что задача - не устранить этот конкретный косяк, а выявить методику.
Вот я установлю все локально и запущу джаного-сервер. У меня два варианта - все изменилось и стало ОК. Где был косяк? Вопрос то остался…
Второй вариант - все осталось по-прежнему. Где косяк?
Как видим, варианта для начала - два. Но ведь я и сейчас могу их проверить не прибегая к переустановке.
Так вот как?

Ну например, какой вывод можно сделать из того факта, что в uWSGI записал правильное время - 10 сек.
Но при этом вьюха отработала быстро (я просто поставил счетчик) и я увидел готовый контент в терминале. Что происходит в этот период, когда контент уже готов и его надо отдать, но этого не происходит? Какую фичу надо запустить? Может быть обращения к базе происходят и в этот период, а я недостаточно понимаю в оптимизации postgresql?
PEHDOM
Strashko
У меня два варианта - все изменилось и стало ОК. Где был косяк?
тогда косяк явно не в коде и\или джанги\постгреса, а в настройках VDS, хреновом канале, малом количестве разрешенных открытых дескрипторов и тд, и тп..
Strashko
Второй вариант - все осталось по-прежнему. Где косяк?
тогда проблема таки в джанге\постгресе вобщем в реализации сервера, но не в каналах связи или тормозах VDS-а.
в любом случае вы, как минимум, сразу понимаете где искать точно не нужно(или если нужно то в самую последнюю очередь).

Strashko
Какую фичу надо запустить?
Нужно сначала понять где задержка, пошагово пройтись по всем этапам и посмотреть что занимает сколько времени и потом уже смотрет что делать. Это называеться профилирование, делаеться примерно както так
https://habr.com/company/mailru/blog/202832/
https://habr.com/company/mailru/blog/201778/
Strashko
PEHDOM
пошагово пройтись по всем этапам и посмотреть что занимает сколько времени и потом уже смотрет что делать
Спасибо, понял, пошел переваривать…
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