NFS 사용시 작은 파일 쓰기와 관련하여 튜닝 또는 대안을 찾고 있습니다.
글쓴이: systemfile / 작성시간: 목, 2016/05/12 - 2:39오후
안녕하세요.
nfs서버 1대와 nfs 클라이언트 2대로 테스트 중 성능과 관련한 문제가 생겨 글을 올립니다.
클라이언트 2대에서 테스트 파일을 생성하여
서버 저장소에 넣는 간단한 테스트를 진행해 보았습니다.
nfs에 연결된 각 클라이언트가 동시에 같은 파일을 열고 닫고를 반복하며 1바이트를 밀어 넣는 것으로 테스트 해봤는데.
만번 반복(10,000바이트 쓰기)하는데 3분이 걸리더군요...
※ 10메가 파일 0.001초가 걸렸습니다.
파일이 작아서 그런지 생각보다 성능이 안나서 튜닝 방법에 대한 도움이나
대안에 대한 조언을 듣고 싶습니다.
혹시 참고가 될만한 링크라도 부탁드리겠습니다.
감사합니다.
Forums:
성능조정
리눅스를 사용하신다고 했을때 기본적인 튜닝 옵션 입니다. NFS Client Node 들의 /etc/fstab
:/마운트명 /로컬마운트명 nfs tcp,bg,intr,rsize=32768,wsize=32768,_netdev,noac,actimeo=0,forcedirectio 0 0
NFS 마운트 옵션
• 클라이언트에서 mount 시 -o 뒤에 들어가는 NFS용 옵션이 있다. 모든 목록은 mount_nfs(1M)에 나와있으며 여기서는 자주 사용되는 몇가지 옵션에 대해 설명하고자 한다.
• actimeo
NFS 성능 튜닝에서 가장 많이 설정하는 것이 actimeo 값이다. 이는 nfs 로 마운트된 곳의 파일 어트리뷰트를 캐시하는 시간을 일괄적으로 지정한다. 일괄적이라는 것은 acdirmax, acdirmin, acregmax, acregmin 값을 각각 지정하는 번거로움없이 actimeo 를 적어주면 앞의 4가지 값이 모두 동일하게 변경된다. 단위는 초이다. 4가지 속성의 기본값은acdirmax=60,acdirmin=30,acregmax=60,acregmin=3 이다.
예를 들어 actimeo=30 으로 하면, 4가지 속성 모두 30(초)으로 세팅된다. 즉 acdirmax=30,acdirmin=30,acregmax=30,acregmin=30 과 같다.
• forcedirectio
directio를 강제로 사용고자 할때 옵션을 주면 된다. 버퍼링 없이 클라이언트/서버간에 데이터가 전송된다. actimeo=0 옵션과 같이 DBMS의 데이터 파일처럼 큰 파일을 핸들링 할때 주로 사용된다.
• rsize, wsize
최대 읽기버퍼(rsize), 최대 쓰기버퍼(wsize)의 크기 지정. 단위는 바이트. 기본값은 NFSv3, NFSv4에서 1048576
• bg, fg
마운트 실패시 background로 재시도, foreground로 재시도. 기본값은 fg
• noac, nointr
데이터및 파일 속성 캐시 안함(noac), [hard]옵션으로 마운트된 파일 시스템에서 행이 걸렸을 경우 프로세스를 죽이기 위해 키보드 인터럽트를 허용하지 않음(nointr). 기본값은 캐시함, 허용함.
• soft, hard
NFS서버에서 응답이 없는 경우, 서버 응답하거나 타임아웃될때까지 재시도하거나(hard), 에러를 발생하고 마운트 프로세스 종료(soft). NFSv4에서는 soft를 지원하지 않는다. 기본값은 hard.
• vers
사용할 NFS 프로토콜을 정의. vers=3 인경우 NFSv3. 기본값은 4
• 마운트 옵션 예
댓글 달기