이 페이지에서는 Compute Engine 클라이언트를 사용하여 Google Cloud Managed Lustre 인스턴스의 성능을 테스트하는 방법을 설명합니다. fio를 사용하여 단일 클라이언트 성능을 측정하고 IOR 벤치마크 도구를 사용하여 집계된 다중 클라이언트 성능을 측정하는 방법을 안내합니다.
단일 클라이언트 성능 측정
단일 Compute Engine 클라이언트에서 읽기 및 쓰기 성능을 테스트하려면
fio (가변형 I/O 테스터) 명령줄 도구를 사용합니다.
fio를 설치합니다.
Rocky 8
sudo dnf install fio -yUbuntu 20.04 및 22.04
sudo apt update sudo install fio다음 명령어를 실행합니다.
fio --ioengine=libaio --filesize=32G --ramp_time=2s \ --runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \ --group_reporting --directory=/lustre --buffer_compress_percentage=50 \ --name=read --blocksize=1m --iodepth=64 --readwrite=read
테스트를 완료하는 데 약 5분이 소요됩니다. 완료되면 결과가 표시됩니다. 구성 방법에 따라 VM의 최대 네트워크 속도까지의 처리량과 TiB당 수천 개의 IOPS를 예상할 수 있습니다.
다중 클라이언트 성능 측정
여러 Compute Engine 클라이언트에서 Managed Lustre의 읽기 및 쓰기 성능을 테스트하려면 IOR 벤치마크 도구를 사용합니다. 다음 안내에서는 클라이언트 설정을 자동화하고 IOR을 사용하여 여러 클라이언트 머신의 집계 I/O를 테스트하는 방법을 보여줍니다. IOR은 MPI를 사용하여 여러 클라이언트 머신이 서로 조정할 수 있도록 합니다.
시작하기 전에 네트워크의 mtu 값이
8896으로 설정되어 있는지 확인합니다.
환경 변수 설정 및 SSH 키 생성
클러스터를 배포하기 전에 로컬 머신에서 SSH 키를 생성합니다. 이 키는 생성 중에 클라이언트 머신에 배포되어 MPI의 비밀번호 없는 통신을 사용 설정합니다.
export SSH_USER="lustre-user"
export CLIENT_PREFIX="lustre-client"
# Generate an SSH key for the specified user
ssh-keygen -t rsa -b 4096 -C "${SSH_USER}" -N '' -f "./id_rsa"
chmod 600 "./id_rsa"
# Create a metadata file formatted for Google Cloud
echo "${SSH_USER}:$(cat "./id_rsa.pub") ${SSH_USER}" > "./keys.txt"
시작 스크립트 만들기
다음 콘텐츠를 로컬 머신에서 install-ior.sh라는 파일에 저장합니다. 이 스크립트는 운영체제를 감지하고, 부팅 잠금이 해제될 때까지 기다리고, Lustre 클라이언트 및 종속 항목을 안전하게 설치하고, 안정적인 IOR 출시를 컴파일하고, Managed Lustre 파일 시스템을 마운트합니다.
LUSTRE_IP를 Managed Lustre 인스턴스의 IP 주소로, FS_NAME를 파일 시스템 이름으로 바꿉니다.
#!/bin/bash
source /etc/os-release
if [[ "$ID" == "ubuntu" ]]; then
# Ubuntu
# Wait for apt lock
while fuser /var/lib/dpkg/lock-frontend >/dev/null 2>&1; do sleep 5; done
# Configure Artifact Registry repo for Ubuntu
curl -fsSL https://us-apt.pkg.dev/doc/repo-signing-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/us-apt-pkg-dev.gpg
if [[ "$VERSION_ID" == "22.04" ]]; then
REPO_NAME="lustre-client-ubuntu-jammy"
elif [[ "$VERSION_ID" == "24.04" ]]; then
REPO_NAME="lustre-client-ubuntu-noble"
fi
echo "deb [signed-by=/usr/share/keyrings/us-apt-pkg-dev.gpg] https://us-apt.pkg.dev/projects/lustre-client-binaries $REPO_NAME main" | sudo tee /etc/apt/sources.list.d/lustre-client.list
sudo apt-get update
while ! sudo apt-get install -y lustre-client-modules-$(uname -r) lustre-client-utils openmpi-bin libopenmpi-dev make gcc g++ wget git automake autoconf libaio-dev; do
sleep 5
done
sudo modprobe lustre
else
# Red Hat / Rocky Linux
while systemctl is-active --quiet dnf-makecache.service; do sleep 5; done
if [[ "$ID" == "rocky" && "$VERSION_ID"