# Đo độ trễ tới máy chủ GPU trước khi chạy việc dài

URL: https://cloudj.net/vi/blog/measure-latency-to-gpu-host
Published: 2026-11-12 · Updated: 2026-11-12

> Cách đo độ trễ tới máy chủ GPU trước khi cam kết: triển khai ngắn, đo bằng ping, mtr, curl từ mạng của người dùng, đo thời gian tới token đầu tiên và xóa máy nếu không đạt.

Trước khi dùng một GPU để phục vụ người dùng cả tuần, hãy dành vài phút đo độ trễ tới máy chủ GPU đó từ chính nơi người dùng đang ở. Vị trí theo quốc gia là bộ lọc đầu tiên tốt, nhưng hai máy cùng một nước vẫn có thể cho kết quả khác nhau với mạng của người dùng, và chỉ đo đạc mới cho bạn biết máy nào tốt hơn. Trên Cloudj, GPU tính tiền theo phút, nên một lần triển khai thử không đạt cũng tốn rất ít: đo, quyết định, và xóa nếu cần. Bài này hướng dẫn đo bài bản, từ tầng mạng cho đến thời gian người dùng phải chờ token đầu tiên.

Độ trễ nằm ở đâu trong bài toán chọn khu vực, xem [hướng dẫn chọn GPU theo vị trí](https://cloudj.net/vi/blog/gpu-cloud-by-location-guide).

## Bước 1: triển khai một instance thử ngắn

Chọn ứng viên từ danh sách trên [trang triển khai GPU](https://app.cloudj.net/deploy/gpu). Lọc theo mã các nước gần người dùng, với người dùng Việt Nam thường là `SG, HK`, rồi triển khai máy bạn đang cân nhắc. Bạn chỉ cần giữ nó đủ lâu để đo, thường chưa tới một giờ.

- Dùng template "Ubuntu 22.04 + CUDA (SSH)", trừ khi bạn cần cả hệ thống để đo đầu cuối.
- Chọn ổ đĩa nhỏ nếu chỉ đo mạng; ổ đĩa không mở rộng được, nhưng đằng nào bạn cũng xóa instance này.
- Chọn SSH key. Key mới thêm có thể mất tới 3 phút mới được chấp nhận sau khi instance khởi động.

Khi máy đã chạy, mở tab **Connection** của instance và ghi lại host cùng port SSH. Port thường không phải 22.

## Bước 2: đo độ trễ tới máy chủ GPU từ phía người dùng

Chạy các lệnh sau từ một máy trong mạng của người dùng, không phải từ văn phòng nếu người dùng ở nơi khác. Với khách hàng Việt Nam, đó có thể là laptop dùng mạng Viettel, VNPT hay FPT, thậm chí nên đo trên cả ba nhà mạng; với API do chính VPS của bạn gọi, hãy chạy trên VPS đó.

**Thời gian khứ hồi bằng ping.** Có thể không có phản hồi, vì một số máy chủ chặn ICMP:

```bash
ping -c 20 <host>
```

**Đường đi và điểm phát sinh trễ hay mất gói, bằng mtr:**

```bash
mtr -rwc 50 <host>
```

Hãy nhìn các bước cuối. Mất gói chỉ xuất hiện ở giữa rồi biến mất ở sau thường là do router ưu tiên thấp việc trả lời, không phải mất gói thật. Mất gói hay độ trễ tăng vọt kéo dài tới bước cuối mới là thứ người dùng cảm nhận.

**Thời gian mở kết nối TCP tới port SSH**, cách này dùng được cả khi ping không trả lời:

```bash
for i in $(seq 1 10); do
  curl -s -o /dev/null -w "%{time_connect}\n" telnet://<host>:<port> --max-time 3
done
```

Nếu bạn đã quen đo vị trí VPS theo cách này, phương pháp giống hệt bài [đo độ trễ VPS bằng ping và mtr](https://cloudj.net/vi/blog/test-vps-latency-ping-mtr).

## Bước 3: đo điều người dùng thật sự phải chờ

Thời gian khứ hồi của mạng chỉ là một phần câu chuyện. Với ứng dụng AI, người dùng chờ token đầu tiên hay kết quả đầu tiên, bao gồm cả xếp hàng, xử lý câu lệnh và bản thân mô hình. Hãy đo đầu cuối.

Khởi động máy chủ mô hình trên GPU, chỉ lắng nghe ở `localhost`, rồi truy cập đúng theo cách môi trường thật sẽ dùng, tốt nhất là qua VPS phía trước. Để thử nhanh từ máy của bạn, tunnel là đủ:

```bash
ssh -N -L 8000:localhost:8000 -p <port> root@<host>
```

Rồi bấm giờ một yêu cầu dạng stream. Với endpoint tương thích OpenAI:

```bash
curl -N -s -o /dev/null \
  -w "first_byte=%{time_starttransfer}s total=%{time_total}s\n" \
  http://localhost:8000/v1/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"my-model","prompt":"Xin chào","max_tokens":64,"stream":true}'
```

`time_starttransfer` xấp xỉ thời gian tới token đầu tiên mà phía client nhìn thấy. Lặp lại 20 đến 30 lần với câu lệnh thực tế, rồi xem giá trị trung vị và các lần tệ nhất, đừng chỉ nhìn lần tốt nhất. Bài [độ trễ cho AI thời gian thực](https://cloudj.net/vi/blog/real-time-ai-latency-gpu) giải thích cách tách con số này thành phần mạng và phần tính toán.

Lưu ý: SSH tunnel từ laptop ở nhà tự nó cũng thêm độ trễ. Khi quyết định cho môi trường thật, hãy đo qua đúng đường đi mà môi trường thật sẽ dùng.

## Bước 4: đo vào đúng giờ quan trọng

Các tuyến quốc tế có thể hoạt động khác đi vào giờ cao điểm. Ở Việt Nam, buổi tối là lúc mạng quốc tế thường đông nhất, và cũng là lúc khách mua sắm, nhắn tin nhiều nhất. Nếu người dùng của bạn hoạt động nhiều buổi tối, hãy đo cả buổi tối. Một lần đo vào giờ vắng có thể khiến máy trông tốt hơn hẳn so với cảm nhận vào một tối đông người. Instance thử tính tiền theo phút, nên hãy lên lịch hai buổi đo ngắn thay vì để máy chạy cả ngày.

## Bước 5: quyết định, giữ hay xóa

So kết quả đo với ngân sách độ trễ của bạn:

| Kết quả | Việc nên làm |
|---|---|
| Đường mạng sạch, thời gian tới token đầu nằm trong ngân sách | Giữ lại, hoặc triển khai toàn bộ hệ thống lên máy này |
| Mạng ổn nhưng thời gian tới token đầu quá cao | Vấn đề ở phần tính toán: thử card nhanh hơn hoặc mô hình nhỏ hơn |
| Độ trễ hoặc mất gói cao khi đo từ phía người dùng | Xóa và thử máy ở nước gần hơn |
| Kết quả dao động mạnh giữa các lần đo | Đo lại vào giờ khác hoặc thử máy khác |

Destroy xóa instance cùng ổ đĩa, mọi khoản phí dừng lại. Khoản cọc giữ lúc triển khai được trả lại sau khi xóa, có khi sau tối đa 72 giờ trong lúc chờ chốt phí băng thông.

## Đo cả phía VPS

Nếu có VPS đứng trước GPU, đường đi của người dùng kết thúc ở VPS, và GPU chỉ cần gần VPS. Hãy đo riêng hai đoạn: người dùng tới VPS, và VPS tới GPU. Bài [chọn vị trí VPS theo độ trễ](https://cloudj.net/vi/blog/choose-vps-location-latency) nói về nửa đầu của đường đi đó.

## Câu hỏi thường gặp

### Vì sao ping tới máy GPU không có phản hồi?

Một số máy chủ chặn ICMP. Hãy đo thời gian kết nối TCP tới port SSH hoặc gửi yêu cầu HTTP qua dịch vụ của bạn.

### Có biết thành phố của máy GPU trước khi đo không?

Không. Vị trí GPU chỉ hiển thị đến cấp quốc gia, đó chính là lý do việc đo quan trọng.

### Thử nhiều máy có tốn kém không?

Tiền tính theo phút, nên các lần thử ngắn rất rẻ. Hãy xóa mỗi instance thử ngay khi có số liệu.

### Có nên đo từ văn phòng không?

Chỉ khi người dùng ở đó. Hãy đo từ những mạng mà người dùng thật sự dùng.

## Chạy lần đo đầu tiên

Mở [trang triển khai GPU](https://app.cloudj.net/deploy/gpu), triển khai một instance ngắn gần người dùng và chạy các lệnh trên trước khi cam kết. Giá theo thời gian thực của mọi mẫu có trên [GPU cloud](https://cloudj.net/vi/gpu-cloud).
