---
title: "Solana Geyser gRPC - ทดสอบความหน่วงของ gRPC"
description: "SLV - Solana Geyser gRPC - ทดสอบความหน่วงของ gRPC"
canonical: "https://erpc.global/th/doc/geyser-grpc/test/"
locale: "th"
---

# Solana Geyser gRPC - ทดสอบความหน่วงของ gRPC

คู่มือนี้จะแสดงวิธีทดสอบความหน่วง (latency) ของเซิร์ฟเวอร์ Solana Geyser gRPC

## สิ่งที่ต้องเตรียม

ติดตั้ง SLV CLI:

```bash
curl -fsSL https://storage.slv.dev/slv/install | sh
```

## ทดสอบความหน่วงของ gRPC

คุณสามารถทดสอบความหน่วงของเซิร์ฟเวอร์ Solana Geyser gRPC ได้ง่าย ๆ ด้วยคำสั่งต่อไปนี้:

```bash
slv check grpc --help
Usage:   slv check grpc
Version: 0.9.0

Description:

  Check gRPC endpoint

Options:

  -h, --help              - Show this help.
  --endpoint  <endpoint>  - gRPC endpoint URL
  --token     <token>     - Token for authentication
```

หากคุณยังไม่มีสิทธิ์เข้าถึง Geyser gRPC โปรดดูคู่มือ [เริ่มต้นใช้งาน Geyser gRPC อย่างรวดเร็ว](https://erpc.global/th/doc/geyser-grpc/quickstart/)

## รันการตรวจสอบความหน่วง

หากต้องการทดสอบ endpoint แบบใช้ร่วมกันโดยตรง ให้รันคำสั่งต่อไปนี้โดยใส่ endpoint ของคุณเอง:

```bash
slv check grpc --endpoint <YOUR_ENDPOINT> --token none
```

ตัวอย่าง:

```bash
➜  ~ slv check grpc --endpoint http://grpc-ams1.erpc.global --token none
Checking gRPC endpoint: http://grpc-ams1.erpc.global
Current latency: 540 ms, slots: 0
Avg latency: 540 ms
Current latency: 962 ms, slots: 1
Avg latency: 751 ms
Current latency: 394 ms, slots: -1
Avg latency: 632 ms
Current latency: 776 ms, slots: 0
Avg latency: 668 ms
Current latency: 1157 ms, slots: 1
Avg latency: 765.8 ms
Current latency: 529 ms, slots: 0
Avg latency: 726.3333333333334 ms
Current latency: 891 ms, slots: 1
Avg latency: 749.8571428571429 ms
Current latency: 249 ms, slots: -1
Avg latency: 687.25 ms
```

จากนั้นการทดสอบจะดำเนินการตรวจสอบความหน่วงของเซิร์ฟเวอร์ Geyser gRPC

คุณสามารถหยุดการทดสอบได้โดยกด `Ctrl + C`

---

## ข้อมูลอ้างอิง: ทำความเข้าใจความหน่วงของ gRPC

เมื่อวัดความหน่วงของ gRPC คุณอาจเห็นค่าที่เกินหนึ่งวินาที ซึ่งในตอนแรกอาจทำให้รู้สึกว่า “ช้า” แต่โปรดจำไว้ว่าเวลาของบล็อก (block time) ของ Solana ถูกบันทึกไว้ในระดับวินาทีเท่านั้น โดยส่วนที่เป็นมิลลิวินาทีจะถูกตัดทิ้ง

### เชื่อมต่อภายในภูมิภาคเดียวกัน

ก่อนอื่น ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ของคุณอยู่ในภูมิภาคเดียวกับ endpoint ของ gRPC ตัวอย่างเช่น หากคุณเชื่อมต่อกับ `grpc-ams1.erpc.global` คุณก็ควรวางเซิร์ฟเวอร์ไว้ที่ Amsterdam ด้วย เพื่อลดความหน่วงของเครือข่ายให้น้อยที่สุด

### เหตุใดคุณจึงอาจเห็นความหน่วง “เกิน 1 วินาที”

สมมติว่ามีธุรกรรมที่เกิดขึ้นจริงเวลา 07:46:46.900 แต่ Solana บันทึกไว้เป็น 07:46:46.000 หากคุณได้รับธุรกรรมนั้นเวลา 07:46:47.200 การคำนวณแบบตรงไปตรงมาจะได้ผลดังนี้:

```text
(Receive Time) - (Block Time)
= 07:46:47.200 - 07:46:46.000
= 1.2 seconds
```

เมื่อมองผ่าน ๆ ค่านี้ดูเหมือนความหน่วง 1.2 วินาที แต่เนื่องจากธุรกรรมเกิดขึ้นจริงเวลา 07:46:46.900 ความหน่วงที่แท้จริงจึงมีเพียงประมาณ 300ms:
07:46:47.200 - 07:46:46.900 = 0.3 วินาที

### หักออก 500ms เป็นค่าประมาณ

เนื่องจาก Solana ปัดเวลาลงเป็นวินาทีเต็ม เราจึงไม่รู้แน่ชัดว่าธุรกรรมเกิดขึ้น ณ จุดใดภายในวินาทีนั้น การประมาณที่สมเหตุสมผลคือการสมมติให้อยู่ที่จุดกึ่งกลาง (500ms) สูตรจึงเป็นดังนี้:

```text
(Receive Time) - (Block Time + 0.5 seconds)
```

แม้จะไม่แม่นยำสมบูรณ์แบบ แต่วิธีนี้ช่วยชดเชยข้อมูลระดับมิลลิวินาทีที่ขาดหายไป และให้ค่าประมาณที่ใกล้เคียงกับความหน่วงจริงของ gRPC มากขึ้น

หากคำนึงถึงประเด็นเหล่านี้ คุณจะประเมินความหน่วงของ Solana Geyser gRPC ได้แม่นยำยิ่งขึ้น เนื่องจาก Solana บันทึกเวลาในระดับวินาที จึงต้องนำความคลาดเคลื่อนที่อาจเกิดจากการปัดเศษมาพิจารณาด้วย รวมทั้งต้องวางเซิร์ฟเวอร์และ endpoint ให้เหมาะสม เพื่อให้ผลการวัดสะท้อนประสิทธิภาพในการใช้งานจริง
