Bạn có một hệ thống tập tin VZFS, có nghĩa là VPS của bạn là máy ảo Parallels Virtuozzo. Trong Virtuozzo, nhà cung cấp dịch vụ lưu trữ có thể đặt giới hạn cho nhiều tham số, bao gồm cả phân bổ bạn nhận được với VZFS.
Nguyên nhân: Hết Inodes (Phổ biến nhất)
Sau nhiều năm làm việc với hàng trăm khách hàng của Virtuozzo VPS, những người gặp phải vấn đề không thể tạo tệp, mặc dù dường như có rất nhiều không gian trống, phần lớn trong số họ đã đạt đến giới hạn inode. Chạy lệnh này để xem phân bổ inode ( Inodes
), các nút được sử dụng ( IUsed
), IFree
các nút còn lại ( ) và tỷ lệ phần trăm của các nút được sử dụng ( IUse%
):
df -i
Có 100% sử dụng inode xảy ra rất nhiều. Nguyên nhân phổ biến trong kinh nghiệm của tôi:
- Thư bị trả lại thư rác
- Các email spam gửi đi
- Rất nhiều email gửi đến được lưu trữ
- Một số người dùng thiết lập bộ sưu tập rác phiên PHP (
session.gc_maxlifetime
) của họ tới hơn một trăm năm
- Quá nhiều tập tin bộ nhớ cache chung
- Bộ đệm đối tượng được kích hoạt trong plugin WordPress W3 Total Cache
- Nhật ký lỗi Magento (một tệp mới được tạo cho mỗi lỗi)
- Các chương trình / tập lệnh được cấu hình kém hoặc được thiết kế kém khác tạo ra một loạt các tệp và quên xóa chúng
Xử lý sự cố
Nếu bạn thấy rằng bạn thấp hoặc không có inodes nhưng không biết phần lớn trong số chúng ở đâu, tôi có Bash-liner này tìm kiếm thư mục hiện tại và đếm số inodes ở độ sâu thư mục là 1:
for i in $(find $(pwd) -maxdepth 1 -type d | sort); do echo -e "$(find "$i" | wc -l)\t: $(readlink -f "$i")"; done | sort -nr
Bạn có thể tiếp tục thay đổi thư mục làm việc hiện tại bắt đầu từ /
khi bạn tìm ra thủ phạm sử dụng hết phân bổ inode của mình.
Giải trình
VPS của bạn nằm trên hệ thống tệp VZFS, một phần của Parallels Virtuozzo (không phải OpenVZ, tương tự và dựa trên cùng một công nghệ, nhưng OpenVZ sẽ không sử dụng VZFS).
Do cách Virtuozzo lưu trữ các tệp trong VZFS, các nút thường bị giới hạn nhiều hơn so với trên các hệ thống tệp khác như ext4 hoặc XFS. Máy chủ lưu trữ theo dõi tất cả các tệp này và sẽ có lợi cho nhà cung cấp dịch vụ lưu trữ khi không để một VPS nào chiếm hàng trăm triệu inodes. Do đó, nhà cung cấp dịch vụ lưu trữ có thể đặt giới hạn inode ở mức thấp, như 1.000.000 inode.
Sau nhiều năm làm việc với hàng trăm khách hàng đã cạn kiệt phân bổ inode của họ trên Virtuozzo, những vấn đề về hạn ngạch đĩa "bí ẩn" này không làm tôi ngạc nhiên nữa.
Nguyên nhân: Các giới hạn Virtuozzo khác
Một tỷ lệ rất nhỏ trong số các khách hàng VPS Virtuozzo tôi từng làm việc có vấn đề về hệ thống tập tin vì họ gặp phải các giới hạn khác. Bạn có thể thấy một số (nhưng không phải tất cả) các giới hạn với lệnh này:
cat /proc/user_beancounters
Xử lý sự cố
Nếu failcnt
cột có giá trị lớn hơn 0 hoặc held
giá trị cột bằng limit
giá trị tương ứng , bạn đã đạt đến giới hạn.
Bạn có thể tra cứu từng tham số trên wiki của OpenVZ tại đây . Một tham số có thể là "chính", "phụ" hoặc "phụ".
Bạn nên liên hệ với nhà cung cấp dịch vụ lưu trữ của mình để được hỗ trợ thêm nếu bạn thấy rằng bạn không thể giảm held
số lượng giới hạn mà VPS của bạn đã đạt tới.
Câu trả lời này có thể được mở rộng rất nhiều tùy thuộc vào loại đậu nào được tối đa hóa, vì các giới hạn khác nhau đạt được gây ra các triệu chứng khác nhau.
Nguyên nhân: Giới hạn đã giảm sau khi bị tấn công
Về /proc/user_beancounters
hoặc df -i
, đôi khi, quản trị viên hệ thống Virtuozzo có thể giảm limit
tham số bên dưới held
giá trị.
Ví dụ: nếu giới hạn ban đầu của diskinodes
tham số là 1.500.000 và bạn đạt giới hạn thì ai đó tại nhà cung cấp dịch vụ lưu trữ của bạn sẽ đặt giới hạn inode của bạn thành 1.000.000, bạn sẽ thấy một báo cáo inode kỳ quái từ df -i
đó vô nghĩa.
Cuối cùng, bạn có thể thấy một số lượng lớn bất hợp lý, như 18,446,744,069,620,218,961 .
Tôi coi đây là hành vi độc ác từ nhà cung cấp dịch vụ lưu trữ, đặc biệt là nếu họ không thông báo cho bạn, bởi vì các giá trị bất thường mà bạn thấy đi ngược lại kiến thức của những người dùng siêu không có kinh nghiệm với Virtuozzo / OpenVZ, dẫn đến sai lệch lời khuyên ( ví dụ , một ví dụ khác ).
Xử lý sự cố
Liên hệ với nhà cung cấp dịch vụ lưu trữ của bạn. Cho họ thấy những gì bạn đã tìm thấy và làm việc với họ để đưa hạt đậu của bạn xuống dưới giới hạn.
Nếu họ từ chối giúp đỡ bạn, hãy từ chối nhà cung cấp dịch vụ lưu trữ của bạn và tìm một nhà cung cấp khác không sử dụng ảo hóa Virtuozzo / OpenVZ. Ảo hóa KVM, ảo hóa VMware, ảo hóa Xen hoặc các máy chủ kim loại trần sẽ chịu các giới hạn ít hơn nhiều so với Virtuozzo / OpenVZ.
Giải trình
Nhà cung cấp dịch vụ lưu trữ của bạn có thể đã kiểm tra hoặc phản hồi cảnh báo và nhận thấy rằng VPS của bạn đang sử dụng quá nhiều tài nguyên cụ thể (hầu như luôn luôn là giới hạn inodes, là diskinodes
thông số ở cuối của họ).
Một quản trị viên Virtuozzo thiếu kinh nghiệm tại nhà cung cấp dịch vụ lưu trữ tin rằng họ có thể giải quyết vấn đề bằng cách giảm giới hạn xuống mức thấp hơn mức sử dụng tài nguyên thực tế. Trong trường hợp inodes, bạn có thể có phân bổ thấp hơn, như 1.000.000, mặc dù mức sử dụng hiện tại thực tế của bạn có thể cao hơn, như 1.500.000.
Quản trị viên Virtuozzo trong bảng điều khiển của họ sẽ thấy mức sử dụng thực tế của bạn và giới hạn mới, nhưng bạn sẽ thấy các số không có thật có thể rất cao một cách vô lý do cách mà Virtuozzo ảo hóa.
Một quản trị viên Virtuozzo cẩu thả sẽ không thông báo cho bạn về sự thay đổi này, đó là lý do tại sao bạn nên liên hệ với nhà cung cấp dịch vụ lưu trữ nếu điều này xảy ra với bạn.