장치 I/O 의 포화 상태를 해결하려면 어떻게 해야하나요?
글쓴이: sia79 / 작성시간: 금, 2008/10/17 - 11:17오전
서버가 부하가 걸린다고 조사해보니.
데이터 베이스가 있는 디스크에서 I/O가 너무 많아서 I/O를 쓰려는 다른 프로세스가 대기 상태가 되는 것 같습니다.
CPU 40%이하, MEM 실사용은 40%이하, network 트래픽은 안정적 등 모두 낮은 수치로 테스트가 되었는데...
iostat 로 조사했을 때, 데이터 베이스가 있는 디스크에서 until 값이 100%에 육박하고 있더군요.
man 에서는 장치 I/O 포화상태라고 하던데요. 이것을 해결할 수 있는 방법이 무엇인가요?
하드 디스크를 좀더 빠르고 (15krpm이상), 하드 버퍼가 더욱 큰 ( 16메가이상) 것으로 교체하면 나아지려나요?
아니면 서버에 페도라5을 쓴 것부터가 잘 못인가요? 페도라 코어의 커널이 I/O스케쥴 관리를 잘 못한다던가;;
아니면 postgreSQL의 설정을 튜닝하지 않아서 생기는 것인가요?
프로그래밍 법만 공부했지 이런 시스템적인 부분은 문외한이라 어떻게 손봐야할지 막막하군요;
Forums:
자세한 상황은 잘
자세한 상황은 잘 모르겠지만,
고성능 하드웨어로 교체하는 것도 한가지 방법이 될거같고요.
DB 쪽 쿼리 분석도 한번 해보는 것이 좋을 것같네요.
비효율적인 쿼리나, 적절치 못한 테이블 구조, locking이나 머 그런 성능상 영향을 줄 수 있는 문제가 있을 수 있습니다.
언제나 성능이 문제가 되면 정확한 profiling부터...
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
M.W.Park 님께서
M.W.Park 님께서 말씀하신것처럼 우선 디스크 교체이전에 db먼저 확인해 보시는게 좋을거 같습니다.
mysql 이라면 slow-queries 로그를 남기셔서 어디서 부하가 생기는지 확인 후 db 튜닝 먼저 하시는게 좋을거 같습니다.
쿼리 캐시를 이용하는것도 한 방법이라 생각합니다.
먹고 죽자~
댓글 달기