Fix lỗi “Apache: No space left on device: Couldn’t create accept lock”

98

Fix lỗi “Apache: No space left on device: Couldn’t create accept lock” | Là một nhân viên quản trị hệ thống, chắc hẳn bạn đã từng tiếp xúc và làm việc với Apache Web Server rồi phải không nào. Hôm nay mình xin chia sẽ các bạn một trường hợp lỗi mình gặp phải và cách để khắc phục. Các bạn theo dõi nhé.

loi apache no space left

Có thể bạn quan tâm chủ đề khác
Hướng dẫn cài đặt LAMP trên CentOS 7
Hướng dẫn cài đặt VestaCP trên CentOS 7 quản lý Hosting/VPS
Litespeed là gì ?
Hướng dẫn cài đặt Litespeed Web Server trên CentOS 7

Một ngày đẹp trời nào đó, bỗng nhiên dịch vụ Apache không khởi động (start) lên được, mặc dù khi bạn restart nhiều lần  thì nó stop không vấn đề gì, khi start lên thì báo lỗi. Check log Apache ‘/var/log/httpd/error.log‘ bạn thấy thông báo lỗi sau lặp lại liên tục:

Một số phương án kiểm tra xử lý lỗi

1. Kiểm tra dung lượng ổ cứng

Đây là bước kiểm tra được ưu tiên nhất và cũng là cách khắc phục dễ nhất. Nếu Server/VPS của bạn hết dung lượng ổ cứng. Hãy giải phóng dung lượng ổ cứng bằng cách xóa các file nặng không cần thiết như backup, log… Lưu ý là bạn phải kiểm tra 2 phần gồm : dung lượng inode hệ thống.

2. Xem lại giới hạn filesystem

Nếu filesystem bạn sử dụng quotas, có thể bạn đang đến giới hạn của quotas chứ không phải giới hạn dung lượng disk. Bạn hãy sử dụng lệnh repquota / để kiểm tra quotas trên root partition. Nếu thật sự lỗi như vậy bạn hãy tăng quota hoặc giải phóng dung lượng ổ cứng. Thường có thể file log Apache là thủ phạm trong trường hợp này.

3. Xoá các semaphore đang hiện hữu

Semaphores là cái gì thế ??? Bạn đã nghe đến khái niệm semaphores ngày xưa được dân hàng hải dùng để giao tiếp bằng 2 lá cờ rồi đúng không? Trong lập trình, semaphores được sử dụng để giao tiếp giữa các active process trong một ứng dụng nhất định nào đó. Cụ thể trong Apache , chúng được sử dụng để giao tiếp giữa tiến trình cha (parent process) và tiến trình con (child process). Nếu Apache không thể ghi thông tin semaphore, khi đó nó không thể giao tiếp chính xác những process mà nó đã bắt đầu.

Nếu Apache service của bạn đang stop, bạn hãy kiểm tra như sau với quyền user root:

Nếu bạn nhìn thấy list các semaphore khá nhiều thì có nghĩa là vì nguyên nhân nào đó không xác định được. Apache không tự clear được semaphore cũ dành cho giao tiếp tiến trình trước đó và semaphore bị mắc kẹt lại. Từ đó tràn bộ nhớ dành cho các thông tin semaphore. Chúng ta sẽ xóa chúng bằng lệnh sau nhé.

Trong 3 trường hợp trên, thường thì Apache sẽ khởi động lên được. Nếu nó vẫn chưa được thì bạn thử tăng semaphores lên bằng cách mở file /ect/sysctl.conf thêm vào option sau:

Sau đó chạy lệnh sysctl –p để áp cấu hình mới.

Tổng kết

Như vậy là CuongQuach.com đã hướng dẫn các bạn hoàn tất các bước kiểm tra hệ thống khi gặp lỗi “Apache: No space left on device: Couldn’t create accept lock”. Vô cùng đơn giản phải không nào, cám ơn các bạn đã theo dõi.

Nguồn: https://cuongquach.com/

Đánh giá sao từ người đọc :
[ Tổng : 0 - Trung bình: 0 ]