JMeter 동시성 문제

song yuheon·2023년 10월 7일
0
post-thumbnail

동시성 문제란?


여러개의 스레드나 프로세스가 병렬 차리할 때 시스템이 오작동하거나 데이터 불일치하는 문제이다.
JMeter로 멀티 스레드 SpringBoot 웹서버 성능 테스트 할때 발생하기도 한다.


동서성 문제의 종류


  1. 경쟁 조건
    두개 이상의 스레드가 공유 자원에 접근하고 그 결과가 순서에 따라 달라지는 상황에 발생한다.

  2. 데드락
    두개 이상의 스레드가 서로 다른 자원을 기다리며 무한히 대기하는 상황을 말한다.

  3. 라이브락
    스레드는 진행되지 않지만 데드락과는 달리 상태를 변경하며 다른 스레드의 작업을 방해하는 문제를 말한다.

  4. 별개화
    어떤 스레드가 동기화 메커니즘으로 무한히 자원에 접근 할 수 없는 상황


동시성 문제의 해결 방법



  1. 공유 자원에 접근할 때 그 자원을 사용하는 스레드만이 접근하도록 제한한다.
    다른 스레드들은 대기한다.
  • 뮤텍스(Mutex), 세마포어(Semaphore)
  1. 트랜잭션
    여러 작업을 하나의 묶음으로 처리하여 모든 작업이 성공적으로 이루어지거나 아무런 작업도 이루어지지 않도록 하는 방법이다.

  2. 데드락 회피
    자원 할당 상태와 스레드의 요구를 고려하여 데드락이 발생하지 않도록 자원을 할당한다.


profile
backend_Devloper

0개의 댓글