web-dev-qa-db-ja.com

WindowsでマップされたEFS共有を高速化する方法はありますか?

AWSアカウントを取得したばかりで、EFSをテストしていました。 EFSを作成し、Amazon Linuxインスタンスにマウントして、Sambaで共有するように設定しました。その後、Windows7とWindowsServer 2012で共有をドライブとしてマップすることができましたが、それに関連するすべてが信じられないほど遅いです(ファイルの表示、ファイルの作成、共有プロパティの表示-すべて)。これは、マウントが8 [〜#〜] exa [〜#〜]バイトであることが原因だと思います。

インスタンスまたはSambaにマウントする際に、共有のサイズを変更したり、小さな断片に分割したりする方法はありますか?

Efsのサイズを直接変更する方法はありますか? 8エクサバイトは使用しません!

サイズ以外の原因で速度が低下しているのかどうかを判断する方法はありますか?

これをWindowsのドライブとしてマップできる必要があります。

1
raphael75

EFSはIOクレジットのシステムで実行されます。これらのクレジットは、EFSで使用しているスペースの量に基づいて、1日を通して常に生成されます。

EFSボリュームの読み取りまたは書き込みを行うたびに、これらのクレジットを消費します。残高にIOクレジットがない場合、読み取りと書き込みは、クレジットがなくなるまで待機します。

おそらく、すべてのクレジットを使い果たしてしまった可能性があります。背景IOはクレジットを使い果たし、パフォーマンスをひどく保ちます。

Cloudwatchをチェックすることで、EFSボリュームのクレジット数を確認できます。

これをもう少し明確にするために。 EFSディスクで1GiBのみを使用している場合、50KiB/sを超えるレートで読み取り/書き込みを行うと、クレジットが消費され、50KiB/s未満のレートで読み取り/書き込みを行うと、クレジットが生成されます。

比較すると、EFSディスクに10GiBがあると、500KiB/sを維持できます。

1つのサービスでEFSを利用していますが、約80GiBの無用な生データを生成する必要があることがわかりました。これは、EFSディスク上にあるだけで、アプリケーションで使用できる十分なIOクレジットを生成できます。シェア。

クレジットがしきい値を下回った場合に通知するクラウドウォッチアラームを設定し、EFSディスクに「役に立たないデータ」を追加して、通常のパフォーマンスを維持できるようにしました。

これがあなたに影響を与えると思うなら、 EFSスループットスケーリングに関するAmazonの公式提案 を読むことをお勧めします。

3
KHobbits

同様の問題があり、その解決策を見つけました。 EFSサイズを時間内に報告できなかったSAMBAに問題を絞り込むことができました。具体的には、sambaはsys_get_nfs4_quota()の実行に失敗し、約60秒でタイムアウトします。

この問題を解決するために、sambaにカスタムスクリプトを追加して、サイズを計算せずに8エクサバイトを即座に報告しました。これが(理論的には)無制限のEFSであることを考えると、報告されるサイズは重要ではなく、固定数を返すことは問題ありません。これにより、60秒のタイムアウトが解決されます。

これを行うには、/ etc/samba/samba-dfreeにファイルを作成し、以下の2行を追加します。

#!/bin/bash
echo "8000000000 8000000000"

次に、samba構成ファイルで、必要に応じて、グローバルセクションまたは特定のEFSマウントセクションのいずれかに次のパラメーターを追加します。

dfree command = /etc/samba/samba-dfree
dfree cache time = 60

設定ファイルを保存します。 SAMBAを再起動すると、遅延がなくなるはずです。お役に立てれば。

2

WindowsにマウントされたSamba共有を介して同様の低速アクセスがあります。 EC2で良好なパフォーマンス(ディレクトリをナビゲートするときの少なくとも1秒のアクセスなど)が得られています。マウントされたドライブの「マイコンピュータ」/「このPC」ビューからWindowsにアクセスできるようになるまでには数分かかりますが、ディレクトリ内に入るとかなりパフォーマンスが高いように見えます。

つまり、これはWindowsが8エクサバイトのファイルシステムのサイズを把握しようとしているようなものですか?

Cmdの使用はこれをサポートしているようです。ファイルシステムに入り、「dir」を実行すると、ディレクトリが一覧表示され、「bytesfree」が表示されるまでに長い遅延が続きます。

これは答えではないことを感謝します。私よりも有能な人にとって役立つ情報になることを願っています。

2
andyterry