LINUX - UNIX

Xử lý tiến trình zombie trong Linux nhanh chóng

Những ai làm việc nhiều với Linux hay Unix chắc hẳn cũng từng gặp qua trường hợp bị tiến trình zombie này xuất hiện. Tùy vào mỗi loại zombie mà cách xử lý tiến trình zombie khác nhau. Nó có thể xuất hiện ngay sau khi bạn reboot server, cũng có thể là sau một khoảng thời gian sử dụng.

xử lý tiến trình zombie 1

Tiến trình zombie là gì?

Tiến trình zombie, hiểu nôm na zombie là xác sống, tiến trình zombie là tiến trình xác sống, tiến trình còn chạy nhưng không còn hoạt động nữa, sống như đã chết. Tuy nhiên, các tiến trình này có thể gây ra tải cao cho Server hoặc chết service của Server.

Tiến trình defunct là gì?

Tiến trình defunct chính là tiến trình zombie. Bạn có thể kiểm tra các tiến trình zombie bằng cách gõ lệnh

Tiến trình zombie có ảnh hưởng gì?

Thường thì tiến trình zombie không gây ảnh hưởng gì nhiều. Tuy nhiên, trong một số trường hợp cụ thể nó sẽ gây ảnh hưởng đến hệ thống như: không start lại tiến trình, tiến trình không chết hẳn có thể làm hệ thống monitor không theo dõi được.

Đọc thêm:  SSH Server khác không cần password

Ngoài ra tiến trình zombie sẽ gây cao tải hệ thống (load average), thông thường giá trị này khoảng dưới 1, nhưng khi có zombie các tài nguyên không được giải phóng nó sẽ có thể lên 100 thậm chí 200 nếu nhiều tiến trình bị zombie.

Một số tiến trình nếu bị zombie sẽ không hoạt động, ví dụ như SSH, trong quá trình xử lý các zombie để viết bài này tôi đã bị zombie service sshd và không thể làm gì hơn được do không thể su – root và login thêm.

xử lý tiến trình zombie 4

Phát hiện tiến trình zombie

Chúng ta dùng lệnh top, ps để kiểm tra có tiến trình zombie trên server không.

Xử lý tiến trình zombie

Cách đơn giản nhất để xử lý zombie process là reboot lại server, cách này hay sử dụng khi các cách khác không phát huy hiệu quả.

Để xử lý tiến trình zombie, chúng ta thử kill -9 id tiến trình đó. Nếu ko kill dc, chúng ta thử tìm và kill -HUP tiến trình cha sẽ ok luôn

Áp dụng xử lý tiến trình zombie trong trường hợp cụ thể

Nhận biết server có bị tiến trình zombie hay không

Nếu load avarage cao hoặc lệnh top -n1 sẽ show ngay số lượng tiến trình zombie

xử lý tiến trình zombie defunct

Check tiến trình nào bị Zombie, tìm tiến trình cha nếu có để restart nó trong trường hợp không restart được tiến trình con

Đọc thêm:  Tìm thư mục gây ra đầy ổ trong Linux

zombie defunt 3

Các tiến trình zombie sẽ có chữ <defunct> phía sau

xử lý tiến trình zombie 2

Thử restart lại tiến trình

Thử restart tiến trình cha với các câu lệnh phía trên hoặc

Cách cuối cùng nếu các tiến trình zombie ảnh hưởng đến hệ thống của bạn

Ví dụ xử lý tiến trình Zombie 1

Các bạn có thể thử kill -HUP hoặc tìm tiến trình cha để kill

xử lý tiến trình zombie

Ví dụ xử lý tiến trình Zombie 2

  1. Tìm tiến trình Zombie
  2. Thử kill tiến trình
  3. Kiểm tra lại tiến trình có kill dc không
  4. Kiểm tra tiến trình cha của zombie
  5. Kill tiến trình cha
  6. Kiểm tra lại

xử lý tiến trình zombie defunct

Tổng kết

Trên đây tôi đã hướng dẫn các bạn một số cách xử lý tiến trình zombie trong linux. Nếu thấy hay hãy chia sẻ và đăng ký nhận bài viết hay! Còn chỗ nào không hiểu vui lòng comment cho ý kiến. Tôi luôn sẵn sàng giúp đỡ!

Chúc các bạn thành công!

Tags

A Tùng

IT guy, thích đam mê công nghệ, Server, Linux, Wordpress, SEO và uống trà

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Back to top button
Close