Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Питон под нагрузкой, Андрей Сумин, HeadHunter
Search
IT-People
July 25, 2016
Programming
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Питон под нагрузкой, Андрей Сумин, HeadHunter
Выступление на конференции PyCon Russia 2016
IT-People
July 25, 2016
Transcript
30 slides
Питон под нагрузкой Сумин Андрей, hh.ru
None
Основные фронтенды ~ 1500 RPS
Сервис интеграционной логики ~ 2500 RPS
Сходить в бекенды Обработать ответы Применить шаблон Наложить переводы Запрос
Ответ
https://github.com/hhru/tornado https://github.com/hhru/frontik
None
None
for emp in xml.findall('employer-group/employer'): vacancies = set(emp.xpath('vacancies/id/text()')) if len(vacancies) <=
10: get_short_vacancies(self, vacancies)
None
Curl story http-клиент Дай резюме Васи Дай резюме Пети Бекенд
Таймаут http-клиент
Баги в Питоне Воркэраунды (например для urlparse.urlsplit)
Баги в Питоне Воркэраунды (например для urlparse.urlsplit) Cookie — использовать
в исходном виде нельзя
IOLoop while True: run_callbacks() run_timeouts() for fd, event in select.epoll():
run_handler(fd, event)
Что нельзя? — никаких долгих вычислений
Что нельзя? — никаких долгих вычислений — синхронные походы в
базу/кеш — проблема
Что нельзя? — никаких долгих вычислений — синхронные походы в
базу/кеш — проблема — даже резолвинг ДНС чаще всего блокирующий
Что нельзя? — никаких долгих вычислений — синхронные походы в
базу/кеш — проблема — даже резолвинг ДНС чаще всего блокирующий — логирование может стать проблемой!
None
Треды спасают мир — в сишной либе можно явно отпустить
GIL (с помощью макроса Py_BEGIN_ALLOW_THREADS / Py_END_ALLOW_THREADS)
None
None
None
Три закона — пользователи способны на всё
Три закона — пользователи способны на всё — всё что
может произойти — произойдёт
Три закона — пользователи способны на всё — всё что
может произойти — произойдёт — всё что может упасть — упадёт
Три рецепта — проводите нагрузочное тестирование
Три рецепта — проводите нагрузочное тестирование — измеряйте потерянную прибыль
Три рецепта — проводите нагрузочное тестирование — измеряйте потерянную прибыль
— вкладывайтесь в инфраструктуру
Вопросы?
[email protected]
More Decks by IT-People
See All by IT-People
Александр Кошкин, Positive Technologies: Знай и люби свой CPython во имя луны и великой справедливости
itpeople123
1
220
How Python was Shaped by leaky Internals, Armin Ronacher, Flask framework
itpeople123
1
250
Building social network with Neo4j and Python, Андрей Солдатенко, Toptal
itpeople123
1
250
Осторожно, DSL! Иван Цыганов, Positive Technologies
itpeople123
0
130
Докеризация веб-приложения на Python Антон Егоров, Ostrovok.ru
itpeople123
0
210
Python Robot Operating System вместо Middleware framework Дмитрий Киселев, Endpoint.com
itpeople123
0
120
Falcon — очередная WSGI библиотека? Дмитрий Кукушкин, Wargaming
itpeople123
0
290
Очереди задач без купюр, Артем Малышев, Positive Technologies
itpeople123
1
120
Flame graph: новый взгляд на привычное профилирование, Кирилл Борисов, Яндекс
itpeople123
1
280
Other Decks in Programming
See All in Programming
React Native経験者が Flutterを30⽇間触って驚いたこと
3saito
0
190
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.9k
AWS CDKを理解するために公式の定義を深掘って解説してみる / Understanding AWS CDK by Digging into Its Official Definition
akihisaikeda
3
310
선언형 햅틱 라이브러리 진동을 소개합니다
l2hyunwoo
1
310
ローカルLLMの基本と近況 2611 / Local LLM basics and recent situation 2611
kishida
2
410
プロジェクトコードをキレイキレイしよう!暗黙的な参照を読み解く静的解析
ostk0069
0
210
AI-Powered Domain-Driven Design
ziobrando
0
450
社内AIエージェント「Askワンバン」における コストチューニングの取り組み
t0yohei
0
170
例外からRich Errorsまで Kotlinエラーハンドリングの進化を読み解く
shiita0903
0
140
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
180
Rails初心者がパスキーを実装してみて大変だったこと
ktombow
0
190
小さなアプリを作って公開するまで
onozaty
0
180
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
My Coaching Mixtape
mlcsv
0
390
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Building Adaptive Systems
keathley
44
3.3k
Darren the Foodie - Storyboard
khoart
PRO
5
4.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2.1k
From π to Pie charts
rasagy
1
450
Site-Speed That Sticks
csswizardry
13
1.6k
Ruling the World: When Life Gets Gamed
codingconduct
0
440