아카이브사이트맵
© 2026 Rayon. All rights reserved.
DevDay
아티클랭킹스페이스채용
데브시스터즈 favicon데브시스터즈

프로파일링으로 쿠키런 서버 성능 7배 향상!

by DD
2021-02-28
5년 전
조회수 18

Artillery를 활용한 부하 테스트 결과, 10 RPS의 낮은 성능을 확인

Linux perf를 통해 node-canvas의 drawImage 함수에서 병목 현상 발견

이미지 리사이징 최적화를 통해 7배 성능 향상 및 응답 시간 50% 감소 달성

Artillery를 활용한 부하 테스트

Artillery를 사용하여 시민권 발급 서비스의 부하를 테스트했다. YAML 기반의 설정 파일로 다양한 시나리오를 정의하고, Node.js 환경에서 쉽게 테스트를 수행했다. 따라서, 서버의 초당 요청 처리량(RPS)과 응답 시간을 측정하여 성능 병목 지점을 파악했다.

Linux Perf를 이용한 프로파일링

Docker 컨테이너 환경에서 Linux perf를 사용하여 서버의 성능을 분석했다. Flamegraph를 통해 drawImage 함수 내 bits_image_fetch_convolution_affine_reflect_a8r8g8b8 함수가 병목임을 확인했다. 이미지 리사이징 과정에서 발생하는 문제점을 파악하여 성능 개선의 단서를 찾았다.

이미지 리사이징 최적화 전략

drawImage 함수 호출 시, 원본 이미지 크기를 고려하여 dWidth, dHeight 값을 조정했다. 이미지 리사이징을 미리 수행하여 CPU 부하를 줄였다. 결과적으로, 7배의 성능 향상과 응답 시간 50% 감소를 달성하여 서비스의 안정성을 확보했다.

사전예약 서버 프로파일링으로 서버 병목찾아 개선하기
고급
아키텍처
Node.js
Artillery
Linux perf
node-canvas
JavaScript
Shell
Backend
DevOps
원문 읽기
원문 읽기

댓글 0

첫 번째 댓글을 남겨보세요!

관련 추천 글

자바스크립트(JavaScript) Promise 취소, 불가능? 가능!

레딧 로고

자바스크립트(JavaScript) 의존성 팽창, 왜 일어날까?

해커뉴스 로고

자바스크립트(JavaScript) 의존성 붓기(Bloat), 왜 생기는 걸까?

랍스타즈 로고

Node.js 버전을 명령어 한 줄로 관리

깃헙 트랜딩 로고

Bun으로 JavaScript 개발 속도 UP!

파이어쉽 로고

크로키가 Node.js를 선택한 결정적 이유: 이벤트 주도 방식!

카카오스타일 로고
데브시스터즈 favicon데브시스터즈
고급
아키텍처
Node.js
Artillery
Linux perf
node-canvas
JavaScript
Shell
Backend
DevOps

관련 추천 글

자바스크립트(JavaScript) Promise 취소, 불가능? 가능!

레딧 로고

자바스크립트(JavaScript) 의존성 팽창, 왜 일어날까?

해커뉴스 로고

자바스크립트(JavaScript) 의존성 붓기(Bloat), 왜 생기는 걸까?

랍스타즈 로고