D
DevOps GuidelineJava Backend · 12 Tuần
Tiến độ: 0/12 tuần (0%)
Tuần:
Lộ trình 12 TuầnNền tảng Hệ thống & MạngTuần 1
Tuần 1 / 12
TUẦN 1Nền tảng Hệ thống & Mạng 10-14 giờ (1.5-2h/ngày)

Linux System Deep-Dive & Quản lý Process JVM

Từ sử dụng lệnh cơ bản sang thấu hiểu cặn kẽ Kernel, Systemd, Memory & Thread của Java

Góc nhìn Java Backend: Phân tích Thread Dump & Memory Usage của Java JVM bằng lệnh Linux nguyên bản mà không cần GUI.

Checklist kiến thức & Mục tiêu cốt lõi

0/5 mục đã nắm vững

Linux File Hierarchy (FHS) & Phân quyền User/Group

Nắm vững các thư mục quan trọng /etc (chứa cấu hình), /var/log (chứa log), /opt (chứa JAR app). Thực hành lệnh chmod 750/640, chown tạo user riêng devops/spring không có quyền root để chạy app an toàn.

Systemd Service Unit cho Spring Boot

Tự viết file cấu hình /etc/systemd/system/myapp.service với các tham số ExecStart=java -jar ..., Restart=always, RestartSec=10s. Kích hoạt auto-restart cùng OS bằng systemctl enable --now và quản lý log qua journalctl.

Vòng đời Process, Quản lý Thread & Signals

Hiểu cách Linux quản lý PID và LWP (Light Weight Process). Phân biệt signal SIGTERM (15) để ứng dụng giải phóng tài nguyên êm đẹp (Graceful Shutdown) và SIGKILL (9) ép tắt tiến trình.

Bộ nhớ Linux: Free, Available & Page Cache

Đọc hiểu đúng đầu ra của lệnh free -h. Biết cách Linux Kernel tận dụng RAM rảnh làm Page Cache/Buffers và hiểu cơ chế Kernel kích hoạt OOM Killer khi thiếu hụt bộ nhớ.

Bộ công cụ dòng lệnh chuẩn đoán JVM trên Linux

Thực hành sử dụng các công cụ đi kèm JDK: jps -l (tìm PID Java), jcmd <PID> VM.flags (xem flags runtime), jstack <PID> (xuất thread dump khi CPU spike), jstat -gc (soi Garbage Collection).

Các câu lệnh thực hành tuần 1

Click Copy để chạy trên server/terminal
$top -H -p $(pgrep -f java)
Xem các thread con của JVM tiêu hao CPU/RAM
$journalctl -u springboot-app.service -f -n 100
Xem live log của service quản lý bằng systemd
$systemctl enable --now springboot-app
Bật service và kích hoạt tự khởi động cùng OS
$lsof -i :8080
Kiểm tra process nào đang chiếm port 8080
$jcmd $(pgrep -f java) VM.flags
Xem toàn bộ JVM flags đang áp dụng ở runtime
#Linux FHS#Systemd Units#Process Management#JVM Profiling#htop#jstack