Dung lượng đĩa cứng vượt quá phạm vi khi ghi vào / tmp, nhưng có nhiều dung lượng (linux)


9

Tôi có một VPS. Nó được quản lý với sự tương đồng khét tiếng plesk.

hôm nay tôi bắt đầu thấy các tin nhắn (thông qua wordpress lúc đầu, nhưng cũng từ vỏ dòng lệnh), nói rằng: "vượt quá dung lượng đĩa".

user@machine:~$ echo aaa > /tmp/aaa
-bash: /tmp/aaa: Disk quota exceeded

nhưng có rất nhiều không gian trên máy và chỉ có 1 phân vùng.

user@machine:~$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/vzfs             100G   24G   77G  24% /

Tôi đã xóa tất cả các tệp từ / tmp / * nhưng vẫn còn.

Tôi không biết gì về "vzfs", có lẽ đó là thủ phạm?

Điều gì có thể đã đi sai? và làm thế nào để khắc phục nó?

Giải pháp!

(nếu bạn KHÔNG sử dụng Parallels Plesk, hãy xem câu trả lời của @ Adalee)

Xem giải pháp của @deltik, liên quan đến hệ thống của Parallel, như trong trường hợp của tôi.

df -i ngay lập tức đưa ra một số lượng lớn các nút: 18,446,744,069,620,218,961, điều này thật điên rồ cho một trang web wordpress.

Tôi đã khám phá thêm và thấy hàng đợi của qmail đầy ắp các nút (nó chứa đầy một số thái độ của hacker để sử dụng máy của tôi để spam và trả lời lỗi)

sửa lỗi qmail không liên quan ở đây, nhưng cách giải quyết của tôi có liên quan:

  1. đã dừng dịch vụ của qmail
  2. tôi không thể tải qmhandle xuống hệ thống vượt quá hạn ngạch, vì vậy tôi phải
  3. trích xuất và tải tập lệnh lên một trang web khác
  4. xóa hàng đợi bằng lệnh này:
  5. perl <(wget -O - http://link.to.my/script.pl ) -D

bằng cách này, tập lệnh đang chạy trực tiếp từ trang web (đây không phải là cách thực hành an toàn, nhưng tôi đã tự đặt tập lệnh ở đó), với các tùy chọn dòng lệnh.

cảm ơn @deltik vì đã biết và nhanh chóng nhận ra thiết lập đặc biệt này ngay tại chỗ và cung cấp phương tiện để chẩn đoán thêm !!!


Linux có các cài đặt phân bổ hạn ngạch đĩa dựa trên người dùng hoặc nhóm. Kiểm tra chúng cũng 5 bước để thiết lập hạn ngạch đĩa người dùng và nhóm trên UNIX / Linux
DavidPostill

1
Có, vzfs(hệ thống tệp "ảo" OpenVZ) có thể là nguyên nhân. Tôi đã thấy nhiều nhà cung cấp OpenVZ bán máy chủ giá rẻ vô cùng, nhưng đặt ra giới hạn ngu ngốc vô cùng cho họ.
dùng1686

Nếu bạn có một giải pháp, ngay cả khi cụ thể, xin vui lòng gửi nó như một câu trả lời. Bạn luôn có thể chấp nhận câu trả lời của người khác.
Daniel B

Câu trả lời:


15

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), IFreecá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 failcntcột có giá trị lớn hơn 0 hoặc heldgiá trị cột bằng limitgiá 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 heldsố 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_beancountershoặc df -i, đôi khi, quản trị viên hệ thống Virtuozzo có thể giảm limittham số bên dưới heldgiá trị.

Ví dụ: nếu giới hạn ban đầu của diskinodestham 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à diskinodesthô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.


Tôi không biết nếu 18,446,744,069,620,218,961 là số lượng nút được chấp nhận cho một trang web chạy wordpress ...
Berry Tsakala

@ BlackBerryTsakala: Đó có phải là số lượng nút được sử dụng hoặc tổng số lượng nút được hệ thống tập tin hỗ trợ không? Nếu bạn có thể cung cấp đầu ra đầy đủ của lệnh, chúng tôi có thể chắc chắn. Dựa trên những gì bạn đã viết cho đến nay, có vẻ như máy chủ của bạn không có giới hạn inode, điều đó có nghĩa là tôi sẽ sai. Tôi sẽ có câu trả lời cập nhật cho bạn để khám phá giới hạn Virtuozzo hơn nữa.
Deltik

@ BlackBerryTsakala: Tôi nhận ra rằng máy chủ của bạn có thể đang làm điều gì đó độc ác và hy vọng bạn sẽ không nhận thấy. Tôi sẽ cập nhật câu trả lời của tôi trong thời gian ngắn với các chi tiết.
Deltik

cảm ơn bạn! tôi đã bắt đầu xóa các tập tin dư thừa. Tôi cũng phát hiện ra một người gửi thư rác lạm dụng hệ thống và email đang lấp đầy hàng đợi của qmail.
Berry Tsakala

BTW, inode không tổng hợp: df -i lớn hơn 100 nghìn tỷ lần so với tổng tje được trả về thông qua lệnh find .... Bạn có biết làm thế nào để xác định sự khác biệt?
Berry Tsakala

4

"Vượt quá dung lượng đĩa" không có nghĩa là không có dung lượng trống trên đĩa của bạn, nhưng bạn không được phép sử dụng quá nhiều dung lượng.

Nói chung, hạn ngạch là một số giới hạn do quản trị viên đặt ra - số lượng quy trình tối đa bạn có thể chạy, bạn có thể chiếm bao nhiêu dung lượng, số lượng tệp bạn có thể có, v.v. Hạn ngạch đĩa có thể được đặt cho số lượng nút và khối tối đa.

Hãy thử chạy quotaquota -g(cách khác, bạn có thể chạy repquota -urepqouta -g) để xem người dùng của bạn có bị hạn chế theo cách này hay không. Nếu có, bạn có thể chỉnh sửa các hạn ngạch đó bằng edquotahoặc tắt chúng bằng quotaofflệnh. Bạn có thể cần phải đăng nhập bằng root cho việc này, tùy thuộc vào cài đặt của bạn.

Trang web này bao gồm một vài ví dụ về cách làm việc với hạn ngạch và cũng chứa các liên kết đến các trang thủ công đến các lệnh hữu ích.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.