VZFSファイルシステムがあります。つまり、VPSはParallels Virtuozzo仮想マシンです。Virtuozzoでは、ホスティングプロバイダーは、VZFSで取得する割り当てなど、多くのパラメーターに制限を設定できます。
原因:iノードが不足しています(最も一般的)
何百ものVirtuozzo VPSのお客様と何年にもわたって作業した結果、ファイルを作成できないという問題がありましたが、十分な空き容量があるように見えましたが、その大半はiノードの制限に達していました。次のコマンドを実行して、iノードの割り当て(Inodes
)、使用されたiノード(IUsed
)、残りのiノード(IFree
)、および使用されたiノードの割合(IUse%
)を確認します。
df -i
iノードの使用率が100%になることはよくあります。私の経験の一般的な原因:
- スパムメールのバウンスバック
- キューに入れられた送信スパムメール
- 大量の受信メールが保存されています
- PHPセッションのガベージコレクション(
session.gc_maxlifetime
)を100年以上に設定しているユーザー
- 一般的なキャッシュファイルが多すぎる
- WordPressプラグインW3 Total Cacheで有効になっているオブジェクトキャッシュ
- Magentoエラーログ(エラーごとに新しいファイルが生成されます)
- 大量のファイルを作成し、それらを削除するのを忘れるその他の不適切な構成または不適切に設計されたプログラム/スクリプト
トラブルシューティング
iノードの数が少ないか不足しているが、それらのほとんどがどこにあるかわからない場合は、現在のディレクトリを検索し、フォルダーの深さ1でiノードをカウントするこのBashワンライナーを使用します。
for i in $(find $(pwd) -maxdepth 1 -type d | sort); do echo -e "$(find "$i" | wc -l)\t: $(readlink -f "$i")"; done | sort -nr
/
iノードの割り当てを使い果たしている原因を見つけるまで、現在の作業ディレクトリを変更し続けることができます。
説明
VPSは、Parallels Virtuozzoの一部であるVZFSファイルシステム上にあります(OpenVZは類似しておらず、同じテクノロジーに基づいていますが、OpenVZはVZFSを使用しません)。
VirtuozzoがVZFSにファイルを保存する方法のため、多くの場合、iノードはext4やXFSなどの他のファイルシステムよりも制限されています。ホストはこれらすべてのファイルを追跡するため、単一のVPSが数億個のiノードを占有しないようにすると、ホスティングプロバイダーにとって有利になります。その結果、ホスティングプロバイダーは、iノードの制限を1,000,000 iノードのように低く設定することがあります。
Virtuozzoでのiノード割り当てを使い果たした何百もの顧客と何年にもわたって作業した後、これらの「不可解な」ディスククォータの問題はもう驚きません。
原因:Virtuozzoのその他の制限
他の制限に達したため、私が使用したVirtuozzo VPSの顧客のごく一部にファイルシステムの問題がありました。このコマンドを使用して、制限の一部(すべてではない)を確認できます。
cat /proc/user_beancounters
トラブルシューティング
列の値がfailcnt
0より大きい場合、またはheld
列の値が対応するlimit
値と等しい場合は、制限に達しています。
OpenVZのwikiで各パラメーターの内容を調べることができます。パラメータは、「プライマリ」、「セカンダリ」、または「補助」のいずれかです。
held
VPSに達した制限の数を減らすことができない場合は、ホスティングプロバイダーに問い合わせてサポートを依頼してください。
上限に達するとさまざまな症状が発生するため、この答えは、どのBeanが最大になったかに応じて大幅に拡張できます。
原因:ヒット後に制限が減少しました
/proc/user_beancounters
またはに関してdf -i
、Virtuozzoシステム管理者limit
は、パラメータのheld
値を値よりも小さくする場合があります。
たとえば、diskinodes
パラメーターの元の制限が1,500,000で、その制限に達した場合、ホスティングプロバイダーの誰かがiノードの制限を1,000,000に設定すると、そこから奇妙なiノードレポートが表示さdf -i
れますが、意味がありません。
あなたの側では、18,446,744,069,620,218,961のような不当に大きな数を見ることができます。
私はこれをホスティングプロバイダーからの不吉な行動だと考えています。特に彼らがあなたに通知しない場合、あなたが見る異常な値はVirtuozzo / OpenVZの経験がないスーパーユーザーの知識に反するため、誤解を招きます。アドバイス(例、別の例)。
トラブルシューティング
ホスティングプロバイダーにお問い合わせください。あなたが見つけたものを彼らに見せて、彼らと協力してあなたの手持ちの豆を限界以下にしてください。
彼らがあなたを助けることを拒否した場合、あなたのホスティングプロバイダーを捨てて、Virtuozzo / OpenVZ仮想化を使用しない別のものを見つけてください。KVM仮想化、VMware仮想化、Xen仮想化、またはベアメタルサーバーは、Virtuozzo / OpenVZよりもはるかに少ない制限を受けます。
説明
ホスティングプロバイダーがアラートを監査または応答していて、VPSが特定のリソースを使いすぎていることを発見した可能性があります(ほとんどの場合、iノードの制限であり、これはdiskinodes
エンドのパラメーターです)。
ホスティングプロバイダーの経験の浅いVirtuozzo管理者は、実際のリソース使用量よりも低い値に制限を減らすことで問題を解決できると考えています。iノードの場合、現在の実際の使用量が1,500,000のように高くても、1,000,000のように低い割り当てになる場合があります。
Virtuozzo管理者のコントロールパネルには実際の使用量と新しい制限が表示されますが、Virtuozzoが仮想化する方法が原因で非常に不当に高い偽の数値が表示されます。
過失のVirtuozzo管理者はこの変更について通知しません。これが発生した場合は、ホスティングプロバイダーに連絡する必要があるのはこのためです。