Zettelkasten
Search
⌘K
Graph
Tags
#
performance
19개
LOR은 요청이 짧다는 가정 위에 있어 오래 열린 요청에서 깨진다
1,524자
alb
aws
load-balancing
performance
LOR은 워밍업 중인 새 타깃을 먼저 고르는데 slow start로 막을 수 없다
1,542자
alb
aws
load-balancing
ecs
performance
Fargate ARM64 전환은 평균 CPU가 아니라 태스크 간 편차를 줄인다
2,144자
aws
fargate
ecs
arm64
graviton
cpu
performance
Fargate에서 서브넷을 한 AZ로 묶어도 CPU 세대는 못 고른다
2,969자
aws
fargate
ecs
cpu
performance
Django ORM의 큰 IN 리스트 비용은 문자열 조립이 아니라 원소별 파이썬 순회에서 나온다
2,613자
django
orm
performance
cpu
query-optimization
profiling
Fargate는 물리 CPU 세대를 고를 수 없어 같은 태스크 정의라도 성능이 1.5~2배 갈린다
2,365자
aws
fargate
ecs
performance
cpu
동시 처리 요청 수를 응답시간으로 계산했다면 응답시간을 두 번 센 것이다
1,126자
performance
measurement
littles-law
load-balancing
처리 속도가 제각각인 서버에는 round robin 대신 least outstanding requests를 쓴다
1,418자
alb
aws
load-balancing
performance
gevent는 I∕O 동시성만 늘리므로 적용 전 워크로드가 CPU bound인지 확인해야 한다
1,255자
gevent
concurrency
performance
async
Django 느린 API의 CPU 병목은 DB가 아니라 직렬화 계층인 경우가 많다
1,696자
django
drf
serialization
performance
cpu
N+1 쿼리 해결은 쿼리당 고정비용만 회수하고 행당 파싱 비용은 줄이지 않는다
1,731자
django
orm
n-plus-one
pymysql
performance
cpu
Python 3.11 gevent 성능은 greenlet 패치 버전에 좌우된다 - 3.2.4는 느리고 3.4.0+는 회복한다
2,066자
python
gevent
greenlet
performance
benchmark
변수 하나만 바꾼 카나리를 같은 타깃그룹에 동시 투입하면 부하 교란 없이 회귀 원인을 격리한다
2,778자
canary
ab-testing
performance
ecs
newrelic
observability
DB 커넥션은 풀 크기를 늘리기 전에 트랜잭션 점유시간을 줄여 회전율을 높인다
1,161자
database
connection-pool
transaction
performance
minimumIdle을 maximumPoolSize와 같게 둔 고정 풀은 버스트 때 커넥션 생성 지연을 없앤다
2,193자
connection-pool
performance
database
커넥션 풀 대기는 프로세스당 실사용량으로 풀 고갈과 재연결 churn을 가른다
1,717자
connection-pool
performance
diagnosis
gunicorn
rds
IN 리스트가 eq_range_index_dive_limit를 넘으면 옵티마이저가 index dive를 포기해 잘못된 plan을 고른다
1,462자
mysql
index
query-optimization
database
performance
gunicorn sync worker는 keep-alive를 무의미하게 만든다
1,019자
gunicorn
http-keepalive
python
nginx
performance
Gunicorn 워커 수가 많아지면 thundering herd로 인해 일부 워커만 요청을 받는다
1,267자
gunicorn
thundering-herd
haproxy
python
performance
django