본문 바로가기

Note/강의&세미나

[OKKY 세미나] 대용량 서비스 성능 개선 노하우 후기

[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 ...