Tình huống CPU > 90–98% liên tục trên hệ thống Red Hat Enterprise Linux 7.7 chạy ứng dụng App provisioning:
1. Phân tích vấn đề
Ảnh
top
cho thấy hàng loạt processjava
(ứng dụng App) chiếm CPU cao.Load average rất lớn (60–70), cao hơn nhiều so với số core CPU → hệ thống quá tải.
Memory vẫn còn (không bị out-of-memory), Swap chưa dùng nhiều → bottleneck chính nằm ở CPU.
Hệ điều hành RHEL 7.7 ổn định, nghĩa là vấn đề đến từ ứng dụng Java hoặc cách JVM được cấu hình.
Các file log (
hs_err_pid…log
) trong thư mục iLink cho thấy có crash/lỗi JVM trong quá khứ → ứng dụng có thể rò rỉ tài nguyên hoặc tối ưu chưa tốt.
2. Nguyên nhân gốc
Ứng dụng App Java chạy nhiều thread xử lý provisioning, tối ưu chưa tốt → tiêu thụ CPU cao.
JVM tuning chưa phù hợp (heap, GC, thread pool) dẫn đến quá nhiều context switch và thread CPU bound.
Thiếu cơ chế load balancing: tất cả traffic provisioning dồn vào một số node → CPU chạm ngưỡng.
Thiếu cơ chế cache/message queue (Redis, RabbitMQ, Kafka) nên mọi request đều xử lý trực tiếp, gây áp lực CPU.
Monitoring/Alert chưa phát hiện sớm nên để CPU chạm ngưỡng cao trong thời gian dài.
3. Giải pháp xử lý ngay
Ngắn hạn (firefighting):
Restart service App (giải phóng thread treo, reset GC).
Giảm số lượng thread song song hoặc hạn mức kết nối vào JVM.
Dùng
renice
hoặctaskset
để hạ ưu tiên CPU cho process phụ.Nếu có cluster, chia tải ngay sang node khác (scale-out manual).
Tạm thời giảm traffic (rate limit) từ upstream để tránh dồn vào 1 node.
Trung hạn (tối ưu):
Tune JVM:
-Xms/-Xmx
cho phù hợp RAM.Chọn GC phù hợp (G1GC thay vì Parallel/Serial).
Giới hạn thread pool trong ứng dụng.
Cài Redis cache cho các truy vấn lặp lại.
Sử dụng RabbitMQ/Kafka để hàng đợi xử lý provisioning thay vì xử lý trực tiếp.
Dài hạn (hạ tầng):
Scale-out theo kiến trúc Microservices hoặc thêm node iLink.
Triển khai Load Balancer (HAProxy/Nginx) phân phối request đều.
Upgrade phần cứng (tăng core CPU) nếu bắt buộc.
4. Bài học kinh nghiệm
Monitoring sớm: dùng Prometheus + Grafana + Alertmanager (như trong tài liệu giám sát bạn có) để phát hiện CPU > 80% sớm, gửi cảnh báo.
Log quản trị: cần đọc log
hs_err_pid.log
để debug nguyên nhân crash.Stress test trước production để xác định ngưỡng CPU.
Tách tải: không dồn tất cả provisioning vào 1 JVM instance.
5. Biện pháp phòng ngừa
Giám sát liên tục: CPU, thread, GC time, TPS của iLink → cảnh báo sớm.
Capacity planning: dự báo số thuê bao, số request peak để chuẩn bị hạ tầng.
Tune ứng dụng: làm việc với App để áp dụng bản vá/tối ưu JVM.
High Availability: cluster nhiều node, có load balancing, tránh single point of overload.
Hệ điều hành & middleware: update RHEL 7.7 và Java JDK lên bản hỗ trợ mới nhất.
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
cơ sở dữ liệu, cơ sở dữ liệu quốc gia, database, AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c/21c/23c/23ai, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, docker, k8s, micro service, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty