Tại sao HomeLab của bạn cần một công cụ Speed Test nội bộ
Chắc hẳn ai cũng từng gặp tình huống này: luồng phim trên Jellyfin bắt đầu bị xoay vòng ngay đoạn cao trào, hoặc khi sao lưu 50GB dữ liệu lên máy chủ TrueNAS mà cảm giác như rùa bò. Hầu hết người dùng sẽ ngay lập tức kiểm tra trên Speedtest.net, nhưng trang đó chỉ đo lường kết nối từ bạn ra internet. Nếu một sợi cáp Ethernet rẻ tiền đang làm nghẽn băng thông 1Gbps hoặc bộ phát Wi-Fi bị quá nhiệt, một bài kiểm tra bên ngoài sẽ không giúp bạn biết được gì.
LibreSpeed sinh ra để giải quyết vấn đề này. Đây là một tiện ích mã nguồn mở nhẹ nhàng, không chứa các thành phần nặng nề như Flash hay Java. Chạy LibreSpeed trên Docker giúp nó có tính di động cao và cực kỳ dễ quản lý. Theo kinh nghiệm của tôi, đây là một công cụ nền tảng cho HomeLab. Nó cung cấp một “mốc chuẩn thực tế” giúp bạn khắc phục sự cố cho mọi dịch vụ khác trong hệ thống.
Bắt đầu nhanh: Triển khai trong 60 giây
Nếu bạn cần chẩn đoán kết nối bị lag ngay lập tức, bạn có thể khởi tạo một container chỉ với một câu lệnh duy nhất. Tôi khuyên bạn nên sử dụng các image được duy trì bởi LinuxServer.io. Chúng luôn được cập nhật thường xuyên, bảo mật và xử lý quyền hạn người dùng tốt hơn nhiều so với các bản thay thế thông thường.
docker run -d \
--name=librespeed \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-p 8080:80 \
--restart unless-stopped \
lscr.io/linuxserver/librespeed:latest
Sau khi container hoạt động, hãy truy cập trình duyệt theo địa chỉ http://[IP-CUA-SERVER]:8080. Bạn sẽ thấy một giao diện sạch sẽ, không quảng cáo. Nhấn ‘Start’ để thấy ngay giới hạn băng thông nội bộ của mình. Mọi thứ đơn giản như vậy đấy.
Cách tốt hơn: Thiết lập với Docker Compose
Các câu lệnh một dòng rất tuyệt để thử nghiệm, nhưng tôi thích Docker Compose hơn cho các thiết lập lâu dài. Nó lưu cấu hình của bạn trong một tệp YAML, giúp việc sao lưu hoặc di chuyển sang máy chủ mới sau này trở nên dễ dàng. Hãy tạo một thư mục dự án và tệp docker-compose.yml để bắt đầu:
mkdir librespeed && cd librespeed
nano docker-compose.yml
Dán cấu hình này vào tệp:
services:
librespeed:
image: lscr.io/linuxserver/librespeed:latest
container_name: librespeed
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Ho_Chi_Minh
- PASSWORD=mat_khau_bao_mat_cua_ban
volumes:
- ./config:/config
ports:
- 8080:80
restart: unless-stopped
Khởi chạy hệ thống bằng lệnh:
docker compose up -d
Giải thích các tham số
- PUID/PGID: Các biến này ánh xạ người dùng bên trong container với người dùng trên máy chủ (host). Điều này ngăn chặn các lỗi phân quyền khi container cố gắng ghi dữ liệu vào thư mục
/configcủa bạn. - Volumes: Ánh xạ thư mục cấu hình cho phép bạn lưu trữ CSS tùy chỉnh hoặc dữ liệu đo lường (telemetry) một cách vĩnh viễn. Nếu không có bước này, dữ liệu của bạn sẽ biến mất nếu container bị xóa.
- Ports: Tôi sử dụng cổng 8080 ở đây để tránh xung đột với các công cụ phổ biến như Portainer hoặc Nginx, vốn thường chiếm dụng cổng 80 trước.
Sử dụng nâng cao: Theo dõi hiệu suất theo thời gian
Một bài kiểm tra tốc độ đơn lẻ chỉ là một lát cắt tức thời. Để có cái nhìn tổng quát hơn, bạn cần tính năng telemetry. Tính năng này lưu mọi kết quả kiểm tra vào cơ sở dữ liệu, cho phép bạn theo dõi liệu mạng có bị suy giảm khi trẻ con bắt đầu chơi game hoặc khi bạn đang chạy các tác vụ sao lưu nặng hay không.
Kích hoạt Telemetry
Image của LinuxServer bao gồm sẵn một cơ sở dữ liệu SQLite tích hợp. Để kích hoạt, hãy thêm các biến môi trường này vào tệp compose của bạn và khởi động lại container:
environment:
- TELEMETRY=true
- PASSWORD=mat_khau_cua_toi # Dùng để bảo vệ trang thống kê của bạn
Bạn có thể xem lịch sử tại http://[IP-CUA-SERVER]:8080/results/stats.php. Điều này cực kỳ hữu ích để phát hiện các quy luật. Ví dụ, bạn có thể nhận thấy băng thông giảm đi 200Mbps mỗi khi lò vi sóng hoạt động gần router Wi-Fi.
Mẹo chuyên nghiệp để đo lường chính xác
Tôi thường thấy người dùng phàn nàn rằng bài kiểm tra tự host của họ bị “chậm”. Thông thường, nút thắt cổ chai không nằm ở mạng—mà nằm ở phương pháp kiểm tra. Hãy lưu ý bốn điểm sau:
1. Lưu ý CPU của trình duyệt
LibreSpeed chạy trên JavaScript. Mặc dù nhanh, nhưng việc kiểm tra kết nối 10Gbps có thể làm quá tải CPU của laptop trước khi đạt đến giới hạn mạng. Tôi đã thấy các bài kiểm tra 1Gbps vật lộn để đạt tới 600Mbps chỉ vì máy khách bị quá nhiệt và giảm xung nhịp (thermal throttling).
2. Kiểm tra các phân đoạn, không chỉ điểm đến
Đừng chỉ kiểm tra từ máy trạm chính của bạn. Hãy chạy kiểm tra từ nhiều điểm: một PC cắm dây để thiết lập mốc chuẩn, một chiếc điện thoại dưới tầng hầm để tìm điểm chết Wi-Fi, và một laptop chạy qua VPN để đo lường độ trễ do mã hóa.
3. Tránh sử dụng Reverse Proxy cho các bài kiểm tra nội bộ
Nếu bạn sử dụng Nginx Proxy Manager hoặc Traefik, hãy cố gắng bỏ qua chúng khi kiểm tra nội bộ. Proxy thêm một lớp xử lý có thể gây ra độ trễ. Để có dữ liệu thô chính xác nhất, hãy luôn kết nối trực tiếp với địa chỉ IP nội bộ của máy chủ.
4. Hiểu rõ giới hạn phần cứng
Phần cứng rất quan trọng. Nếu bạn chạy Docker trên Raspberry Pi 3, bạn sẽ không bao giờ thấy tốc độ 1Gbps. Cổng Ethernet của Pi 3 bị giới hạn ở mức khoảng 300Mbps vì nó dùng chung băng thông với các cổng USB. Hãy luôn xác minh thông số vật lý của thiết bị trước khi bạn bắt đầu thay thế cáp Cat6 của mình.
Triển khai LibreSpeed là một bước tiến nhanh chóng cho bất kỳ ai đam mê HomeLab. Nó loại bỏ việc đoán mò khi khắc phục sự cố mạng và cung cấp dữ liệu thực tế. Một khi đã hoạt động, bạn có thể sẽ thấy mình sử dụng nó mỗi khi tinh chỉnh cài đặt router hoặc di chuyển một bộ phát Wi-Fi.

