VZFS 파일 시스템이 있습니다. 즉, VPS는 Parallels Virtuozzo 가상 머신입니다. Virtuozzo에서 호스팅 제공 업체는 VZFS를 통한 할당을 포함하여 많은 매개 변수에 대한 제한을 설정할 수 있습니다.
원인 : Inode가 부족함 (가장 일반적)
충분한 여유 공간이있는 것처럼 보이지만 파일을 만들 수없는 문제를 겪은 수백 명의 Virtuozzo VPS 고객과 수년간 작업 한 후 대다수의 파일이 inode 제한에 도달했습니다. 이 명령을 실행하여 inode 할당 ( Inodes
), 사용한 inode ( IUsed
), 남은 inode ( IFree
) 및 사용한 inode 비율 ( IUse%
)을 확인하십시오.
df -i
100 % inode 사용이 많이 발생합니다. 내 경험의 일반적인 원인 :
- 스팸 이메일 반송
- 대기중인 발신 스팸 이메일
- 많은 인바운드 이메일이 저장되었습니다.
- 일부 사용자가 PHP 세션 가비지 수집 (
session.gc_maxlifetime
)을 백년 이상으로 설정
- 너무 많은 일반 캐시 파일
- WordPress 플러그인 W3 Total Cache에서 활성화 된 객체 캐시
- 마 젠토 오류 로그 (모든 오류에 대해 새 파일이 생성됨)
- 잘못 구성되거나 잘못 설계된 다른 프로그램 / 스크립트는 많은 파일을 만들어 삭제하는 것을 잊어 버립니다.
문제 해결
inode가 낮거나 부족하지만 대부분의 위치를 모르는 경우 현재 디렉토리를 검색하고 inode를 1 폴더 깊이로 계산하는 Bash one-liner가 있습니다.
for i in $(find $(pwd) -maxdepth 1 -type d | sort); do echo -e "$(find "$i" | wc -l)\t: $(readlink -f "$i")"; done | sort -nr
/
inode 할당을 사용하여 범인을 찾을 때까지 현재 작업 디렉토리를 계속 변경할 수 있습니다 .
설명
VPS는 Parallels Virtuozzo의 일부인 VZFS 파일 시스템에 있습니다 (OpenVZ는 유사하지 않고 동일한 기술을 기반으로하지만 OpenVZ는 VZFS를 사용하지 않습니다).
Virtuozzo가 VZFS에 파일을 저장하는 방식으로 인해 inode는 종종 ext4 또는 XFS와 같은 다른 파일 시스템에 비해 제한됩니다. 호스트는 이러한 모든 파일을 추적하므로 단일 VPS가 수억 개의 inode를 차지하지 않도록 호스팅 공급자에게 유리합니다. 결과적으로 호스팅 공급자는 inode 제한을 1,000,000 inode와 같이 낮게 설정할 수 있습니다.
Virtuozzo에 대한 inode 할당을 소진 한 수백 명의 고객과 수년간 협력 한 후에도 이러한 "신비한"디스크 할당량 문제는 더 이상 나를 놀라게하지 않습니다.
원인 : 기타 Virtuozzo 제한
내가 작업 한 Virtuozzo VPS 고객 중 아주 적은 비율이 다른 한계에 부딪 쳤기 때문에 파일 시스템 문제가있었습니다. 이 명령으로 일부 한계를 볼 수 있습니다 (모두는 아님).
cat /proc/user_beancounters
문제 해결
경우 failcnt
열이 0보다 큰 값의 이상을 가지고 또는 held
열 값이 대응하는 동일 limit
가치, 당신은 한도에 도달했다.
OpenVZ의 위키에서 각 매개 변수가 무엇인지 찾을 수 있습니다 . 매개 변수는 "1 차", "2 차"또는 "보조"일 수 있습니다.
held
VPS에 도달 한 한도에 대한 수를 줄일 수없는 경우 호스팅 제공 업체에 추가 지원을 요청해야합니다 .
다른 제한에 도달하면 다른 증상이 발생하기 때문에 어떤 콩이 최대화되었는지에 따라이 답변을 크게 확장 할 수 있습니다.
원인 : 적중 후 한계가 감소했습니다.
/proc/user_beancounters
또는 df -i
에 관해 Virtuozzo 시스템 관리자는 limit
매개 변수 held
값을 아래로 줄일 수 있습니다 .
예를 들어, diskinodes
매개 변수 의 원래 한계 가 1,500,000이고 한계에 도달 한 경우 호스팅 제공 업체의 누군가가 inode 한계를 1,000,000으로 설정하면 기괴한 inode 보고서가 df -i
의미가 없습니다.
결국 18,446,744,069,620,218,961과 같이 불합리하게 큰 숫자를 볼 수 있습니다 .
Virtuozzo / OpenVZ에 경험이없는 수퍼 유저에 대한 지식과 반대되는 가치가 있기 때문에 호스팅 제공 업체의 불쾌한 행동이라고 생각합니다. 조언 ( 예 , 다른 예 ).
문제 해결
호스팅 제공 업체에 문의하십시오. 당신이 찾은 것을 보여주고 그들과 협력하여 보류 된 콩을 한도 아래로 가져옵니다.
그들이 당신을 도와주지 않으면, 호스팅 제공 업체를 버리고 Virtuozzo / OpenVZ 가상화를 사용하지 않는 다른 공급 업체를 찾으십시오. KVM 가상화, VMware 가상화, Xen 가상화 또는 베어 메탈 서버에는 Virtuozzo / OpenVZ보다 훨씬 적은 제한이 적용됩니다.
설명
호스팅 제공 업체가 경고를 감사하거나 응답했을 때 VPS가 너무 많은 특정 리소스를 사용하고 있음을 발견했습니다 (거의 항상 inodes 제한 ( diskinodes
최종 매개 변수)).
호스팅 제공 업체의 경험이없는 Virtuozzo 관리자는 실제 리소스 사용량보다 낮은 수준으로 제한을 줄임으로써 문제를 해결할 수 있다고 생각합니다. inode의 경우 실제 현재 사용량이 1,500,000과 같이 더 높더라도 1,000,000과 같이 할당량이 적을 수 있습니다.
제어판의 Virtuozzo 관리자는 실제 사용량과 새로운 한계를 볼 수 있지만 Virtuozzo가 가상화하는 방식으로 인해 불합리하게 높은 가짜 숫자를 볼 수 있습니다.
부주의 한 Virtuozzo 관리자는이 변경 사항을 알리지 않으므로 호스팅 업체에 연락해야합니다.