소규모 웹 서버 팜을위한 새로운 공유 스토리지 인프라를 계획하고 있습니다. 따라서 많은 NAS 파일 시스템으로 많은 테스트를 수행했습니다. 그렇게하면 예기치 않은 결과가 발생하고 여기 누군가가 이것을 확인할 수 있는지 알고 싶습니다.
한마디로 : Samba는 작은 파일 쓰기의 경우 NFS 및 GlusterFS보다 훨씬 빠릅니다.
여기 내가 한 일 : 작은 파일의 쓰기 성능을 비교하기 위해 많은 파일로 간단한 "rsync 벤치 마크"를 실행했습니다. 더 쉽게 재생할 수 있도록 현재 워드 프레스 tar.gz의 내용으로 지금 다시 실행합니다.
- GlusterFS 복제 2 : 32-35 초 , 높은 CPU로드
- GlusterFS 단일 : 14-16 초 , 높은 CPU로드
- GlusterFS + NFS 클라이언트 : 16-19 초 , 높은 CPU로드
- NFS 커널 서버 + NFS 클라이언트 (동기화) : 32-36 초 , 매우 낮은 CPU로드
- NFS 커널 서버 + NFS 클라이언트 (비동기식) : 3-4 초 , CPU로드 매우 낮음
- 삼바 : 4-7 초 , 중간 CPU로드
- 직접 디스크 : <1 초
나는 절대 삼바 전문가가 아닙니다 (마지막 접촉은 삼바 2.x와의 관계라고 생각합니다). 그래서 나는 여기에서 아무것도 최적화하지 않았습니다-즉시 사용 가능한 구성 (debian / squeeze 패키지). 내가 "sync always = yes"를 추가 한 유일한 것은 쓰기 후에 동기화를 강제해야합니다 (그러나 그 결과를 봅니다 ..). 그것없이, 약 1-2 초 빠른 테스트.
동일한 테스트 (자체 탑재 NAS 내보내기)에서 실행되는 모든 테스트이므로 네트워크 지연이 없습니다. 순수한 프로토콜 성능.
사이드 노드 : 파일 시스템으로 ext4와 xfs를 사용했습니다. 위의 결과는 ext4입니다. xfs는 최대 40 % (보다 적은 시간) 더 나은 성능을 보였습니다. 머신은 EC2 m1.small 인스턴스입니다. NAS 내보내기는 임시 디스크의 소스 (추출 된 tar) 인 EBS 볼륨에 있습니다.
삼바가 왜 그렇게 빠른지 아무도 설명 할 수 없습니까?
또한 : 커널 서버의 NFS 성능이 동기화 모드에서 끔찍한 것으로 간주됩니까 (GlusterFS NFS 서버보다 성능이 우수합니까)? 이것을 조정하는 방법에 대한 아이디어가 있습니까?
고마워, L