기타
nginx 499 응답 처리
nginx에서만 사용하는 499 응답이 있다. 이 응답은 클라이언트가 연결을 끊어버리면 nginx에서는 응답할 곳이 사라지기 때문에 발생한다. 프록시 재전송 스케줄러와 관련해서 해당 응답이 발생했을때 backup 서버를 호출하지 않는 이슈가 발생했다. 원인 : 1. WAS에서 알 수 없는 오류로 DB 풀이 가득 참 2. 클라이언트에서 timeout 발생(connection close) 3. nginx에서 클라이언트 연결이 끊겨서 499 발생(upstream backup 호출 안됨) 4. WAS에서 처리되지도 않고 backup 호출이 안되서 재전송 스케줄러도 동작 X(데이터 유실) 해결방법 1 : proxy_next_upstream error timout h..
[Java] 폴더 파일개수 체크 성능 이슈
폴더에 파일개수를 확인하는 로직이 있었는데 오후만 되면 항상 느려지고 cpu 점유가 엄청 올라갔다. 폴더는 하루마다 새로 생성돼서 파일을 쌓는데 처음엔 괜찮다가 쌓이면 느려지는 문제 확인. 코드를 보니 for문 안에서 new File(path).list().length 를 계속 불러 오고 있었다 파일이 적을 때는 괜찮은데 많아질수록 File 객체를 계속 생성해서 불러오니 당연히 느려질 수 밖에 없는 코드... 저 부분에 cache를 적용했다. for문 마다 불러오는게 아니라 특정 작업이 생겼을 때 개수를 확인해서 cache 업데이트 for문에서는 cache값만 확인하니 cpu 점유가 반절로 줄었다. ** 리소스 많이 먹는 작업을 for문에 넣지 않도록 주의하자