서버 부하 테스트 중 CLOSE_WAIT 상태에서 더 이상 커넥션을 맺지 못하고 행업 상태에 빠지는 서버를 분석하고 원인을 찾아 문제를 해결한다. 서론 서버 부하 테스트 과정 중 일정 시간이 경과하면 점점 더 느려지면서 행업 상태에 빠지는 경우가 생겼다. 부하가 높으면 느려지는건…
파일을 사용하기 위해 열기(open)합니다. 파일 열기에는 표준 함수인 fopen()이 있습니다. (fopen() : 표준 C 라이브러리, open() : 리눅스 제공함수) 헤더: fcntl.h 형태: int open (const char *FILENAME, int FLAGS[, mode_t MODE]) 인수: char *FILENAME 대상 파일 이름int FLAGS 파일에 대한 열기 옵션[, mode_t MODE] O_CREAT 옵션 사용에 의해 파일이 생성될 때…
로이터와 커넥션을 맺은 상태에서 폴링을 통해 live한지 알아보는데, fd가 0보다 큰 값이 리턴되었다. 확인해보니 폴링시, select를 통해 fd를 확인 후 FD_ISSET()을 통해 리턴값이 들어오는데..–>FD_ISSET() macro는 이름 그대로 특정 file descriptor가 fd_set에 있는지를 확인한다.return : true(1) or false(0) 클라이언트와 연결이 끊어졌을…
공유 자원에 접근하고자 하는 두개의 쓰레드 a,b가 있다고 해보자. 이때, 공유 자원은 한번에 하나의 쓰레드만 접근해야 race condition이 발생하지 않기 때문에 하나의 쓰레드가 공유자원을 사용중이라면 다른 쓰레드는 그 쓰레드가 공유 자원을 모두 사용할때까지 기다려야 한다. 이때, 기다리는 쓰레드가 공유 자원을…
Thread-safe하기 위한 동기화 리마인드를 위한 소스. ThreadSyncronizedTest.java userTaskRunnable.java main 함수에서 쓰레드를 작동시키면, runnable을 통해 쓰레드별로 withdraw(money) 호출 synchronized 미사용의 경우, newBalance = userBalance – amount; 까지 처리 후.. userBalance가 처리되지 않은 상태에서 타쓰레드로 컨텍스트 스위칭이 발생한다고 가정하자. t1 에서 100달러…
//.profile 수정 alias vi=’TERM=xtermc vim’ .vimrc 도 수정하자. // syntax 처리 온 syntax on
– Deadlock 회피 – 자원이 어떤 방식으로 요청될지 추가정보를 요구하는 것. 1. 자원할당 알고리즘 기법 2. 은행권 알고리즘 – 미리 자원상황 및 사용량 파악 -> 요청오면 -> 안정이면 -> 할당 – Deadlock 회복 1….
– CPU 인터럽트 – CPU는 하던 일을 중단 한후, 서비스루틴의 실행지점으로 시작주소를 옮긴다. 실행을 완료한 후, 인터럽트된 일을 재개한다. – ex : 나는 6시간에 한번씩 안약을 넣는다 (하던일 도중 안약을 넣음) – 프로세스 관리 – 스케쥴링 기법…
연결되어 있는 객체 간의 관계를 표현할 수 있는 자료구조 – 설정 – 위치는 Vertex (정점) or Node – 관계는 Edge (간선) or Link – 종류 – 무방향 그래프 – 방향 그래프 …