한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Sách trắng lag game › L11 Ổ đĩa

Độ trễ seek của HDD HDD seek latency

ID nguyên nhân dk-hdd · Phụ trách chính Hạ tầng server (Đội hạ tầng) · Phối hợp Hạ tầng DB (Đội hạ tầng), Phát triển server (Đội phát triển game)

Mở thẻ gốc có hình minh họa và thí nghiệm →

HDD phải di chuyển đầu đọc trên đĩa từ (seek), nên mỗi lần đọc ghi dữ liệu nằm rải rác mất gần 10 ms.

Vì sao Server cũ hoặc storage giá rẻ dùng HDD → Dẫn đến Mỗi lần đọc ghi rải rác mất khoảng 10 ms → Trên màn hình Lưu và loading chậm nói chung

Triệu chứng
Trễ thao tác
Yếu tố
Độ trễ
Ai gặp phải
Cả server
Khi nào
Luôn luôn
Phụ trách
Phụ trách chính Hạ tầng server (Đội hạ tầng) · Phối hợp Hạ tầng DB (Đội hạ tầng), Phát triển server (Đội phát triển game)
Việc cần làm (Đội phát triển game)
Thiết kế ưu tiên ghi tuần tự.
Việc cần làm (Đội hạ tầng)
Thiết bị server·OS: thay bằng SSD (bắt đầu từ ổ lưu trữ có nhiều đọc ghi rải rác). Thiết bị DB: thay trước bằng SSD cho ổ đĩa DB có nhiều đọc ghi rải rác nhất.
Trên đồ thị
Luôn cao ngay từ đầu · Độ trễ đọc, ghi ổ đĩa (r_await, w_await)
Chỗ cần xem
Dùng lsblk -d -o NAME,ROTA kiểm tra có phải ổ đĩa quay (HDD) không, xem r/s, w/s và r_await, w_await của iostat -x 1. Với server ảo, kiểm tra loại ổ đĩa trong thông số của cloud hoặc storage
Đúng nếu
là ổ đĩa quay, và dù chỉ vài chục đến hơn trăm yêu cầu mỗi giây, r_await và w_await lúc nào cũng từ vài ms đến vài chục ms
Loại trừ nếu
là SSD mà độ trễ vẫn cao → hàng đợi bão hòa (dk-iops) hoặc cạn burst credit (dk-burst)
Cách kiểm tra
Kiểm tra bằng công cụ hạ tầng (không cần code game)

Nguồn

  1. Designs, Lessons and Advice from Building Large Distributed Systems (LADIS 2009 keynote) Google
    Một lần seek ổ đĩa 10 ms, đọc tuần tự 1 MB từ ổ đĩa 20 ms
  2. Exos X18 Data Sheet Seagate
    HDD 7.200 rpm có độ trễ quay trung bình 4,16 ms, đọc ngẫu nhiên 4K đạt 170 IOPS
  3. lsblk(8) — Linux manual page util-linux
    -o chọn cột xuất ra, cột topology thiết bị có ROTA (có phải loại quay không)
  4. ABI stable symbols Linux kernel
    /sys/block/(ổ đĩa)/queue/rotational: cho biết thiết bị thuộc loại quay hay không quay
  5. iostat(1) — Linux manual page sysstat
    -x: r/s, w/s, r_await, w_await (thời gian xử lý trung bình mỗi yêu cầu, tính cả thời gian chờ trong hàng đợi)

Nguyên nhân nên xem cùng

Cùng tầng: L11 Ổ đĩa

Nguyên nhân ở tầng khác gây cùng triệu chứng (Trễ thao tác)

Xem thẻ gốc có hình minh họa và thí nghiệm