PostgreSQL 18을 Ubuntu 24.04 LTS에 설치하고 비동기 I/O 성능을 보려고 io_method = io_uring으로 설정했는데, 시작 시 로그에 "falling back to worker mode"라고 뜹니다.
커널은 6.8이고, io_uring 자체는 strace -e io_uring_setup 같은 도구로 확인하면 다른 프로세스에서는 동작합니다.
# postgresql.conf
io_method = io_uring
shared_buffers = 8GB
왜 fallback 되는지 알 수 있을까요?
댓글 2
거의 항상 seccomp 또는 AppArmor가 io_uring 시스템콜을 차단해서 발생합니다. 우분투의 기본 정책이 io_uring을 막고 있어요.
1) AppArmor 확인
2) PG 로그 자세히 보기
3) 해결 — 두 가지 방법 중 선택
방법 A: AppArmor 프로필 수정 (권장)
방법 B: io_uring sysctl 설정 (system-wide)
우분투 24.04는 보안상
kernel.io_uring_disabled = 2가 기본값입니다(완전 차단). 이걸 0(허용) 또는 1(group만 허용)으로 바꿔야 합니다.4) 적용 확인
실측해보고 결과 공유해주시면 좋겠어요. 보통 sequential scan에서 1.5~3배 빨라집니다.