[OKKY 세미나] 대용량 서비스 성능 개선 노하우 후기
20180503 Thu
Case1 성능 고려 개발 -> 출시
Development
- API: network, protocol
- DB: Index, Sharding, ID
- Cache: Diskless(ㅋㅋㅋ 이런건 DB까지 안가고, 캐시에서 처리)
- Server: Serving(미리 커넥션 풀같은거 만들기)
- APP: UI Access 줄이기 (60fps)
Performance
- Latency
- TPS
- Response mean time
- Saturation Point
Tic-toc service logic
Memory on indexx buffer 올려놓기
Server Framework 가 제공하는 기본 work
- Listen
- Accept
- Recv request
- Parse http
- Handle (사용자는 비지니스에 집중 할 수 있도록 함)
- Send Response
특정 임계점에 도달하면 평균 응답시간은 길어진다.
Performance Test
- Indicator
Case2 출시 -> 성능 개선
Performance
- In cloud architecture (가성비 선택은?)
- MSA(micro service architecture) 개인병원에서 종합병원으로 커지게 되면? 모니터링? 응급실?은 어떻게 해야할까?
- Throughput(임계점)
improvement
- Monitoring(apm)
- Detect
- Analysis (log)
- Tool: jmeter vs.....
가성비 생각해볼 것
Nginx, nodejs, redis, aws
AWS -Architecture
Auto-scaling의 임계점은?
Index 안걸고 성능은? DB성능만 올리는 것이(돈많이..) 외에 올리는 방법은?
SW와 HW 차이는?
인도는 통신사끼리 전국시대임 그래서 먼저 charge해서 쓰는 방식
MSA(Micro Service Architecture)
- Independent
- Do one thing well
- You build it, you run it
- Decenterlized
- Black box
- Polyglot
Performance improvement
Release -> Monitoring -> (Detected) -> Analysis -> Improve -> Test -> QA -> Release
APM(Application Performance Monitering)
Whatsup 유료 cpu memory 뿐만 아니라 tr 실패, req 처리상태 모니터링
Pinpoint 무료
kinesis request가 많을 떄 balance 맞춰줌
android bytal
app-profiler
모니터링 도구
adb
kibana
bitbucket
생소한 용어들과 부족한 배경 때문에 처음에는 집중하기 어려웠으나
다행히 어느 정도 가이드 라인은 잡을 수 있었음.
세상은 넓고, 나는 아주 작구나 생각듬.
윤현석 : https://www.linkedin.com/in/jack-yoon-21b9a169/
이메일 : jack@balancehero.com
키워드
Performance
- Latency
- TPS
- Response mean time
- Saturation Point
- Cloud architecture
- Monolithic, MSA
- Throughput
Development
- API : Network, Protocol
- DB : Index, ID, sharding
- Cache : diskless
- Server : serving
- APP : 60fps
Improvement
- Monitoring : APM
- Analysis : log
- Tools : jmeter vs …
링크
0. Theory : https://docs.google.com/presentation/d/1iWo5mFAzucC-UsoLIBQcMPnUyLAl1Stwr7k71SLLtTY/htmlpresent?hl=ko
1. Latency numbers every programmer should know : https://gist.github.com/hellerbarde/2843375
2. DB innodb index : https://dev.mysql.com/doc/refman/5.7/en/innodb-indexes.html
3. DB innodb buffer pool : https://dev.mysql.com/doc/refman/5.5/en/innodb-buffer-pool.html
4. DB id : https://charsyam.wordpress.com/2011/12/04/instagram-%EC%97%90%EC%84%9C-id-%EC%83%A4%EB%94%A9%ED%95%98%EA%B8%B0/
5. why 60fps? : https://medium.com/google-developers/exceed-the-android-speed-limit-b73a0692abc1
6. IO wait : https://haydenjames.io/linux-server-performance-disk-io-slowing-application/
7. AWS architecture center : https://aws.amazon.com/ko/architecture/
8. AWS MSA Whitepaper : https://d0.awsstatic.com/whitepapers/microservices-on-aws.pdf
9. Whatap (APM) : https://www.whatap.io/
10. Pinpoint (APM) : https://github.com/naver/pinpoint
11. Kinesis example : https://hackernoon.com/processing-real-time-big-data-streams-using-kinesis-lambda-561a029ef305
12. Elastic search : https://aws.amazon.com/ko/elasticsearch-service/
13. performance test tool : jmeter vs ...
'Note > 강의&세미나' 카테고리의 다른 글
[세미나] 2018 오픈소스개발자이야기 (0) | 2018.06.30 |
---|---|
[OKKY 6월 세미나] SI/대기업에서 스타트업으로 이직하기 (0) | 2018.06.02 |
밴야민의 문학비평 (카프카, 프루스트) 05강 <프란츠카프카>(5) (0) | 2017.05.13 |
밴야민의 문학비평 (카프카, 프루스트) 04강 <프란츠카프카>(4) (0) | 2017.05.08 |
밴야민의 문학비평 (카프카, 프루스트) 03강 <프란츠카프카>(3) (0) | 2017.04.29 |