커널에서 read, write 비율을 조정 할 수 있을까요..? 아님 네트웍에서라도..
혹시. 커널에서 read, write 비율을 조정할 수 있을 까요..?
아님 네트웍에서라도 조정이 가능 한가요..??
아님 제한 이라도.. read 는 아무리 많아도 50M write 는 아무리 많아도 20M .. 이런식으로요..
현재 옵테론 듀얼 서버에 3ware 9550을 붙여서 1테라정도의 하드를 붙여서 파일 공유에 사용하고 있는데요.
읽기 성능이 너무나 떨어 집니다.
그냥 읽기 성능이 떨어 지는 건 아니구요. 하나의 큰파일(700M) 정도의 파일을 읽을때는 빠릅니다.
로컬에서 dd 로 테스트 했을때 50M/s 이상 나오는 것 같습니다.
dd if=testfile of=/dev/null bs=1024k count=1024 이런식으로 로컬에서 테스트 했을때요..
그러나 write 가 있을때는 읽기가 팍 떨어져서 초당 10M를 넘지를 못합니다.. write 가 끝날때 까지요.
이런 로컬 테스트의 결과가 cifs, nfs 로 공유 했을때 동일한 증상이 나옵니다.
누구 한명이 쓰기를 시작 하면 나머지 읽는 사람들은 눈에 뛸정도로 읽기가 느려 집니다.
한명 이상이 쓰기 시작하면 나머지 몇명의 읽기는 거의 멈추다 시피 합니다.
테스트 해 볼수 있는 스토리지(히다찌, 후지쯔 등등) 모두 이렇습니다.. 스토리지 만의 문제는 아닌것 같습니다....
윈도우는 어떤지 아직 테스트 해 보지 못했는데.. 리눅스가 읽기 보다 쓰기가 우선순위(?)가 이렇게 높은줄 몰랐습니다.
그래서 전체 네트웍 대역폭 혹은 리눅스 I/O 대역폭을 읽기 쓰기가 적절히 나누어 쓸수 있게 제한 가능 한지 알아 보고 있는데..
딱히 방법이 보이지를 않습니다. 혹시. 리눅스에서 네트웍으로 공유해서 파일을 읽고 쓰기 하는 상황에서
읽고 쓰기 비율을 조정 하거나 네트웍에서 읽고 쓰기 비율을 조정 할 수 있는 방법이 있나요..?;
아님 다른 방법이라도... ;;
제가 생각 하는 가장 좋은 방법은 쓰는 사람이 없을 경우는 I/O 대역폭 전체를 읽기에 사용할 수 있고
쓰는 사람이 있더라도 읽기 는 전체 대역폭은 몇%까지는 보장해 줄수 있는... 아님 초당 몇메가를 보장해 줄수 있는
그런 방법이 있나요..?;
현재 젠투를 사용하고 있고 커널은 2.6.14 입니다.. ; 경험 해 보신분 있으면 좀 알려 주세요.. 부탁드립니다..
raid 혹은 qos
일단 의심가는 문제는 raid 설정문제입니다.
용량에 중점인걸로 봐서는 당연히 5 일텐데..
write할때 느린게 당연합니다.
raid level , cache size , block size , app 의 설정 등.. 모두 고려해야합니다.
속도만 필요하시면 raid 0 으로 바꾸시고..
둘다 필요하시면 10 으로 바꾸시기 바랍니다.
다음으로..
network 로도 가능합니다.
qos 를 걸면 되는데
여러가지 구현체들이 있습니다.
좀 애매하군요 -_-;
머 잠깐 찻아보니.. http://kr.blog.yahoo.com/youniman/archive/2004/05/18 이런것도 있군요.
잘 찻아보시고 설정해보시기 바랍니다.
------------------------------------------------------------------------------------------------
Life is in 다즐링
댓글 달기