백엔드3 Python GIL (Global Interpreter Lock)에 대해 알아보자 저번에 학습한 이론대로라면 Thread 2개를 만들어서 실행하면 아래와 같은 그림으로 동작된다고 생각할 수 밖에 없다. (참조 : https://yscho03.tistory.com/293) 하지만 파이썬은 아래와 같이 동작하지 않는다. 파이썬에는 GIL(Global Interpreter Lock) 이 있기때문에 스레드에서 한 번에 하나의 스레드만 Python 바이트코드를 실행한다. GIL(Global Interpreter Lock) GIL(Global Interpreter Lock)은 CPython 인터프리터(파이썬의 표준 구현체)에서 사용되는 개념이다. GIL은 파이썬 스레드에서 한 번에 하나의 스레드만 Python 바이트코드를 실행하도록 제한하는 메커니즘이다. GIL은 파이썬이 C 언어로 작성된 확장.. 2023. 7. 11. 스레드 풀 (Thread Pool) Thread Per Request 모델 Thread Per Request 모델은 웹 서버에서 요청이 들어올 때마다 새로운 스레드를 생성하여 해당 요청을 처리하는 방식이다. 각 요청은 독립적으로 실행되기 때문에 동시에 여러 요청을 처리할 수 있다. 간단한 구현 각 요청에 대해 새로운 스레드를 생성하기 때문에 구현이 비교적 간단하다. 스레드는 일반적으로 운영체제에서 제공하는 기능을 사용하여 생성 및 관리할 수 있다. 동시성 Thread Per Request 모델은 여러 스레드를 통해 동시에 요청을 처리할 수 있으므로 동시성을 지원한다. 이는 대규모 트래픽을 처리하는 데 유용할 수 있다. 이렇게 계속 요청 들어올때마다 스레드를 생성하게 된다면? 컨텍스트 스위칭 오버헤드 스레드는 자원을 공유하면서 실행되기 때문.. 2023. 7. 11. K6 성능 테스트 툴 K6이란? k6은 엔지니어링 팀의 성능 테스트를 쉽고 생산적으로 만드는 오픈 소스 부하 테스트 도구이다. k6은 무료이며 개발자 중심적이며 확장 가능하다. 주요특징 테스트 스크립트를 Javascript (ES6) 로 작성. jmeter (jmx) 대비 개발자 친화적이고, 시나리오와 함께 테스트 설정까지 코드로 구현 가능, 재사용을 위한 모듈화 가능 Jmeter 대비 더 작은 리소스로 성능 테스트 구현, 즉, jmeter 보다 동일자원에서 더 많은 트래픽을 생산 가능 window 설치방법 1. PowerShell을 활용하여 Chocolatey 패키지 매니저를 설치 C:\> Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointM.. 2022. 3. 31. 이전 1 다음 728x90 반응형