기본 콘텐츠로 건너뛰기

11월, 2016의 게시물 표시

thead dump

스레드 덤프를 이용하여 스레드 상태를 파악할 수 있다. java에서는 monitor를 이용해 스레드를 동기화 하며, 모든 java 객체는 하나의 monitor를 가지고 있다. monitor는 하나의 스레드만 소유할 수 있으며, 어떤 스레드가 소유한 monitor를 다른 스레드가 획득하려면 해당 monitor를 소유하고 있는 스레드가 monitor를 해제할 때까지 wait queue에서 대기해야 한다. 스레드 덤프 유형별 패턴 - deadlock - 락을 획득하지 못하는 경우(blocked) : 한 스레드가 lock을 소유하고 있어 다른 스레드가 lock을 획득하지 못해 전체적인 성능이 느려짐 - 원격 서버로부터 메시지 수신을 받기 위해 대기 : 스레드가 계속 RUNNABLE 상태로 소켓을 읽기 위해 무한정 대기 - 스레드 리소스를 정리 못하는 경우 : 불필요한 스레드가 계속 늘어나고 스레드 리소스를 정상적으로 정리 못할 때

Cloud Service with Docker

Docker : 서비스 운영환경을 묶어서 손쉽게 배포하고 실행하는 경량 컨테이너 기술 Docker Image : 서비스 운영에 필요한 서버 프로그램, 소스 코드, 컴파일된 실행 파일을 묶은 형태 Docker Container : 이미지를 실행한 상태(=process)이며 이미지로 여러 개의 컨테이너를 만들 수 있음 Docker Hub : git hub처럼 이미지 버전 관리도 제공하고 중앙저장소에 이미지를 올리고 받을 수 있음 Cloud Service : 가상화 기술을 이용하여 서버를 임대해 주는 서비스 Immutable Infrastructure : 서버의 OS와 서비스 운영환경을 분리 클라우드 서비스를 이용하여 서버를 임대하고 서비스 운영환경을 Docker Container를 배포하여 프로그램을 실행