| En

zram 압축 스왑

메모리가 모자라면 리눅스는 잘 안 쓰는 페이지를 스왑으로 내보낸다. 문제는 그 스왑이 보통 디스크라는 점이다. 디스크 스왑이 활발해지는 순간 시스템은 눈에 띄게 버벅인다. zram은 이 스왑을 디스크가 아니라 압축된 RAM에 둔다. 페이지를 디스크에 쓰는 대신 RAM 안에서 압축해 보관한다. 거래는 단순하다. CPU를 조금 더 써서 압축·해제하는 대가로 디스크 I/O를 RAM 접근으로 바꾼다. 텍스트성 데이터는 보통 2:1~4:1로 압축되므로, 스왑으로 나간 만큼의 물리 RAM을 절반 이하로 되돌려 받는 효과가 있다. 현재 스왑 확인 zram이 무엇을 대체하는지 보려면 현재 스왑이 어디에 있는지부터 확인한다. ...

2025년 5월 2일 · 3 분 · 554 단어 · In-Jun

JPA N+1 쿼리 문제

회원 목록을 한 번 조회했는데 SQL 로그에 SELECT가 101줄 찍힌다. 이것이 N+1 문제다. 연관 엔티티를 가져오는 첫 쿼리 1개에, 그 연관을 건드릴 때마다 추가로 N개가 더 나가 총 N+1개가 된다. 추정 밀리초가 아니라 로그에 찍힌 쿼리 개수가 이 문제의 신호다. 1개가 101개가 되는 과정 Member가 Team을 지연 로딩(FetchType.LAZY)으로 참조한다고 하자. 회원 100명을 조회하고 반복문에서 각 회원의 팀 이름을 출력한다. List<Member> members = memberRepository.findAll(); // 쿼리 1개 for (Member member : members) { System.out.println(member.getTeam().getName()); // 여기서 팀마다 쿼리 1개 } 첫 줄에서 회원을 한 번에 가져온다. ...

2024년 6월 8일 · 4 분 · 659 단어 · In-Jun
[email protected]