私のサーバーがホールパンチングをサポートしているかどうかを確認するには?

私のサーバーがホールパンチングをサポートしているかどうかを確認するには?

MySQL 5.7を使いたいです。ページ圧縮機能ですが、この機能を使用するには、ドキュメントによると、2.6.39で導入されたLinuxのホールパンチング機能が必要です。しかし、私のサーバーのカーネルバージョンは2.6.32で、ページ圧縮機能が機能していることを確認しましたが、奇妙です!
だから私のサーバーがこのホールパンチ機能をサポートしていることを確認したいと思います。

答え1

直接穴を開けてテストしてみることができます。

$ dd if=/dev/zero of=punch bs=100M count=1

次のコマンドを使用して、確認できる脆弱性のない100MiBファイルを生成しますdu

$ du -h punch
100M    punch

今10MiBの穴を開けます。

$ fallocate -p -o 2M -l 10M punch

ファイルサイズは変更されませんが(図を参照ls -lh)、カーネルとファイルシステムが必要なシステムコールをサポートしている場合は、ディスク容量が少なくなります。

$ du -h punch
90M     punch

man fallocate詳細については、2.6.32ベースのシステムに関連するサポートを含むバックポートカーネルがある可能性があります。

関連情報