쪽팔리면 질문하지 맙시다. 소중한 답변 댓글을 삭제하는건 부끄러운 일 입니다
안녕하세요. 감기가 유행입니다. 모두들 조심하시기 바랍니다.
내용을 요약해서 쓰려고 했는데 잘 안 되서, 그냥 포기하고 길게 씁니다.
현재, 사내망 중 서버 사용 환경이
저장장치 -- 10Gbit L3 * 2 --+- 연산서버 1, 2, 3, ...
+- 인증서버, 기타등등
와 같습니다.
문제는, 저장장치를 프로젝트 진행할때마다 늘려놨더니, 초기에는 문제가 되지 않았던 I / O 쪽 이야기가 나왔습니다.
저장장치쪽이 느려서 연산 결과가 늦게 나온다는 거죠.
이래저래 대처 방법에 대한 이야기가 나왔는데, 그 중 하나가 저장장치를 Controller 포함 구매 하는 겁니다.
현재 저장장치는 Dell Unity XT 를 사용중입니다.
이 장비의 구성은, 크게 Controller + Enclosure 로 구성됩니다.
controller 는 2.5인치 SAS SSD(혹은HDD) 의 I/O를 담당하고,
Enclosure 는 저장장치 용량을 늘리기 위한 케이스 역할을 합니다.
즉, 초기에 controller 만 사용하다가, 추가가 필요하면 Enclosure + HDD(SSD)를 추가해서 용량을 늘리는거죠.
회의에서는,
I/O 가 몰리는 거 같으니, Enclosure 만 사지 말고 Controller 도 같이 사자. 그래야 I/O 병목이 해소된다.
라는 이야기가 나왔습니다.
그런데, 내용을 정리하다 보니 아래와 같은 의문이 들더라고요.
1. L3 는 안 사도 되나?
트래픽이 몰리는 = 느려지는 곳 원인은 , 현재 분석으로는 DISK I/O 로 보입니다. 그래서 대책도 "저장장치용 IO Controller 를 하나 더 사자" 라는 대응인데. 그와 별개로 동일 L3 에 저장장치도 늘어나고, 연산서버도 늘어나면 트래픽이 늘어날 건데... 늘어난 트래픽을 감당하기 위해서 L3를 더 안 사도 되나?
라는 생각이 듭니다.
2. 현재의 병목 현상을 측정할 수 있는 방법이 없을까?
I/O 에 병목현상이 생긴다는 건 프로그램 실행 시 발생하는 값들을 보고 추정한 겁니다.
그런데 그와 별개로 Network , IO 등을 따로 "편하게" 측정할 수 있는 방법이 있을까요?
현재 사용중인 서버는 DELL 인데, DELL 의 IDRAC 에는 IO 혹은 네트워크 트래픽을 그래프로 볼 수 있습니다.
그런데...뭔가 불편해요. console 로 값들을 확인할 수 있으면 좀 더 낫겟다는 생각도 들고.
3. 트래픽을 잴 수 있는 일반적인 솔루션?
근본적으로 , 보통 시스템에서 IO 와 NETWORK 쪽 부하를 볼 때 어떻게 보나요?
이상입니다. 모두들 즐거운 하루 되시기 바랍니다. 감사합니다.
10Gbit이면 1.25GBps인데, 레이드를 어떻게 구성하셨을진 모르지만 네트워크단에서 병목 걸리는것도 배제 못 합니다.
SATA SSD 3개만 레이드0으로 물려도 시퀀셜 스피드는 10gbe로는 감당 못 합니다.
또는 대량의 자잘한 파일이 주로 오가는 구조라면 단순 이더넷을 통한 통신은 오버헤드가 상당합니다.
Dell Unity XT 검색해보니 여러가지 모델이 존재하네요..
어떤 모델을 사용하는지 그리고 네트워크에 어떤 속도로 몇포트가 어떻게 셋팅되어 있는지 어떤 스위치를 사용하는지 정도의 스펙은
있어야 할 듯합니다..
어떤 프로그램(서버가)이 어떻게 부하를 주는지는 모르지만 은근히 요즘은 40G 스위치나 100G 스위치도 사용합니다..
특히나 딥러닝 같은 것 들어가 버리면 100G 까지 가버리는 듯합니다..
디스크라면 queue length, latency, iops, disk i/o
네트워크라면 Bytes Send, Total 등등...
병목이 어디인지 확인하시려면 cpu, memory, disk, network 모두 baseline 에서 벗어나는 놈을 찾으시면 됩니다.
트래픽을 보시려면 mrtg만한게 없지요
좀 수고스럽죠.
시스템 설계만 봐도 알수는 있습니다.
시스템 아키텍쳐 영역이네요..
연산 노드가 여러대이고.. 스토리지 사용량이 연산중 계속 사용하는지..
연산 준비와 연산 끝에서만 사용하는지 따라 많이 다른데..
10G Ethernet은 무조건 병목이겠네요..
보통은 40G 나 100G로 하는데요..
저장장치는 Dell Unity 480 모델입니다. 이 모델은 포트가 8개 있고, 10G 선이 물려있으니 총 10G * 4회선 = 40Gb 일 거고요.
L3 모델이 DELL Networking S4128T-ON 이고, RJ45 포트 하나당 10Gbit 입니다. 포트는 24 + 2 + 4개가 있고, 전체 처리 용량은 대당 960Gbps 입니다..
QSFP 포트 ( QSFP+ 인지는 모르겠습니다. ) 가 있어서, L3 두 대는 QSFP( 혹은 QSFP+ ) 케이블 40G 짜리로 묶여 있습니다.
저장장치 Unity XT 와는 10G UTP * 4 개 * 이중화 로 묶여 있습니다. = 저장장치 컨트롤러에 랜카드가 10G * 4 로 A B 두개 총 8개가 있는데, 이것도 L3에 다 물려 있는거죠.
연산서버 <-> L3 * 2 <-> 저장장치 구조에서, 저장장치와 L3 가 10G * 4(4회선) * 2( A B 이중화 ) 로 연결되어 있습니다. 그래서 네트워크 부하는 이야기 안 나온거로 보이긴 합니다.
그리고 근본적으로 연산서버는 OS 만 들고 있고 모든 작업결과는 저장장치 unity 에 저장되니, 각 연산서버 간 파일이 오고 갈 일은 많이 적긴 합니다. 없다고는 말 못합니다만...
적어주신 내용들로 다시 검토든 확인이든 해 보고, 모르는 내용이 있으면 다시 찾아보던가 질문드리던가 하겠습니다.
이상입니다. 모두들 답변 감사드립니다.