728x90
1️⃣ pdsh란?
**pdsh(Parallel Distributed Shell)**은 여러 대의 리눅스 노드에 병렬로 명령을 실행할 수 있는 도구입니다.
HPC(고성능 컴퓨팅) 환경이나 대규모 GPU 클러스터 운영 시 매우 유용하며, SSH 기반으로 동작합니다.
간단히 말하면,
“한 번의 명령으로 수백 대 노드에서 동시에 실행 결과를 확인”
할 수 있게 해주는 강력한 도구입니다.
2️⃣ 기본 사용법
가장 기본적인 형태는 다음과 같습니다.
pdsh -w node[001-010] <command>
예시:
pdsh -w gpu[001-127] echo "Hello, world"
- -w : 실행 대상 노드를 지정 (node range 지원)
- gpu[001-127] : gpu001 ~ gpu127 노드까지 병렬 실행
- echo "Hello, world" : 각 노드에서 실행할 명령
실행하면 아래처럼 각 노드별 결과가 표시됩니다.
gpu001: Hello, world
gpu002: Hello, world
...
gpu127: Hello, world
3️⃣ 최초 접속 시 Warning 메시지
처음 SSH 접속되는 노드에서는 아래 메시지가 뜰 수 있습니다.
Warning: Permanently added 'gpu006' (ED25519) to the list of known hosts.
이는 SSH 키 인증 캐시가 없어서 생기는 정상적인 첫 연결 경고입니다.
한 번 실행 후에는 ~/.ssh/known_hosts에 저장되므로 이후엔 표시되지 않습니다.
4️⃣ 결과 보기 옵션 (dshbak)
pdsh의 출력은 기본적으로 노드별로 섞여 보입니다.
이를 보기 좋게 정렬하려면 dshbak 명령을 함께 사용하세요.
pdsh -w gpu[001-127] echo "Hello, world" | dshbak -c
-c 옵션은 같은 출력 결과를 묶어주는 옵션으로,
노드별로 결과를 그룹화해 가독성을 높여줍니다.
5️⃣ 결과를 한 줄로만 보기 (-N)
pdsh는 기본적으로 각 노드 이름을 출력하지만,
-N 옵션을 주면 노드 이름 없이 결과만 출력됩니다.
pdsh -w gpu[001-127] -N echo "Hello, world"
결과:
Hello, world
Hello, world
Hello, world
...
6️⃣ 랜덤값 테스트 예시
랜덤 명령 실행도 병렬로 수행할 수 있습니다.
pdsh -w gpu[001-127] echo "((RANDOM % 10))" | dshbak -c
이 명령은 각 노드에서 0~9 사이의 임의의 숫자를 출력합니다.
병렬 테스트, SSH 정상 연결 확인, 성능 체크 등에 유용합니다.
7️⃣ 병렬 실행 시 주의사항
- SSH 설정 필수
- 각 노드에 비밀번호 없이 접근 가능해야 함 (ssh-keygen, ssh-copy-id 필요)
- pdsh 설치
- RHEL 계열: yum install pdsh
- Debian 계열: apt install pdsh
- 환경 변수 확인
- PDSH_RCMD_TYPE=ssh 로 설정해야 SSH 기반 동작
export PDSH_RCMD_TYPE=ssh
8️⃣ 활용 예시
- GPU 클러스터 상태 확인:
pdsh -w gpu[001-127] nvidia-smi --query-gpu=name,temperature.gpu --format=csv
- 시스템 재부팅:
pdsh -w gpu[001-127] sudo reboot
- 특정 프로세스 확인:
pdsh -w gpu[001-127] "ps aux | grep telegraf"
✅ 요약
| 항목 | 설명 |
| 명령 실행 | pdsh -w gpu[001-127] <command> |
| 결과 정리 | ` |
| 노드명 제거 | -N 옵션 |
| SSH 기반 설정 | export PDSH_RCMD_TYPE=ssh |
| 출력 예시 | gpu001~gpu127 동시 실행 결과 확인 가능 |
🧠 결론
pdsh는 수십~수백 대 노드를 운영하는 DevOps 엔지니어에게 필수적인 명령어입니다.
단순 명령 전송뿐 아니라 모니터링, 배포, 점검 자동화에도 적극 활용할 수 있습니다.
728x90
'HPC & GPU Engineering > Linux 성능 튜닝과 모니터링' 카테고리의 다른 글
| [HPC/GPU 클러스터 운영 Linux Deep Dive 5편] I/O 스케줄러 선택과 HPC 스토리지 성능 – 데이터 집약 워크로드 최적화 (5) | 2025.08.15 |
|---|