CPU, Memory 모니터링을 통한 성능 측정 및 병목현상 원인 파악과 해결 과정
병목현상이란? 병목현상은 다수의 요청이 동일한 자원이나 시스템으로 몰려 특정 지점에서 처리 용량을 초과하게 되어 발생하는 성능 저하 현상을 의미합니다. 이번 포스팅에서는 병목현상의 발생 원인을 시각적 자료와 함께 분석하고, 이를 해결하기 위한 성능 개선 방법을 제시해보고자 합니다. 또한, 병목현상을 분석하여 그 원인이 내부 시스템 흐름에 어떻...
병목현상이란? 병목현상은 다수의 요청이 동일한 자원이나 시스템으로 몰려 특정 지점에서 처리 용량을 초과하게 되어 발생하는 성능 저하 현상을 의미합니다. 이번 포스팅에서는 병목현상의 발생 원인을 시각적 자료와 함께 분석하고, 이를 해결하기 위한 성능 개선 방법을 제시해보고자 합니다. 또한, 병목현상을 분석하여 그 원인이 내부 시스템 흐름에 어떻...
테스트를 작성하며 항상 느꼈던 것이 있습니다. 다음은 JPA를 사용한 간단한 테스트 코드 예제입니다. @Test public void orderDetail() { Order order = orderService.createOrder("Smartphone", 1, 800.00); Order result = orderService.ge...
SQL SELECT 시 데이터 수가 적다면 Query를 어떻게 작성하여도 대부분 큰 문제가 되지 않습니다. 하지만 한 테이블에 대략 100만개의 데이터가 저장되어있다면? 어떤 데이터를 조회할지에 대한 상태에 따라 다르겠지만 소요되는 시간이 급격히 증가 될 것이라는 것은 직감적으로 느낄 수 있습니다. 이번 포스팅에서는 SQL 튜닝이 왜 중요하며 성능을...
Redis는 트랜잭션 기능을 제공하지만, 일반적인 관계형 데이터베이스(RDBMS)와는 달리 Rollback 기능이 제공되지 않기 때문에 주의 없이 사용하면 데이터 불일치 문제가 발생할 수 있습니다. 이번 포스팅에서는 Redis 트랜잭션의 이러한 단점을 보완할 수 있는 방안을 작성해보겠습니다. Redis 트랜잭션 동작과 RDBMS 차이점 Re...
캐시는 디스크 접근을 줄여 데이터 조회 속도를 높이는 데 유용하다. 하지만 무분별한 캐시 적용은 예기치 못한 문제를 초래할 수 있다. 그렇다면 현재 진행 중인 프로젝트에서 어떤 상황에 캐시를 적용하는 것이 가장 효과적일까? 캐시 적용에 적합한 조건 자주 변경되지 않는 데이터 데이터 유실이 큰 문제가 되지 않는 데이터 높은 정합성이 요구...