これは理論的な質問です。
スワップファイル/パーティションを29個しか持てないのはなぜですか?
10,000個の1MBスワップファイルを作成してスワップしようとすると、swapon:/ tmp / swap29:swapon failed:Operation not allowedを使用して30個のスワップファイルで失敗します。
これを達成するためのスクリプト
#!/bin/bash
i=0
SWAP=/tmp/swap
while [ "$i" -lt 10000 ];do
dd if=/dev/urandom of=$SWAP$i bs=1M count=1
mkswap "${SWAP}${i}"
swapon "${SWAP}${i}"
i=$((i+1))
done
誰かがこれを説明できますか?
ベストアンサー1
一般英語で:
カーネルはスワップファイル/パーティションを追跡する必要があり、それをテーブルで実行します。各エントリは、事前に割り当てられた少量のメモリを占有します。したがって、合理的な制限を超えるデフォルトの制限(最大スワップテーブルサイズ)が選択されます。
本当にもっと機能が必要な人は誰でもカーネルを修正して再コンパイルできます。