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
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).