ホームに戻る > スレッド一覧 > 記事閲覧
旧2[335] 「速度が出ない」「設定がわからない」方へ0.70での自分の設定と結果【Plala・Bフレッツマンションタイプ】
日時: 2007/08/27 16:31
名前: GF ID:5ZyKrdgc

「速度が出ない」「設定がわからない」等の声を方々で見かけたので、参考になればと思って書き込みました。

【OS/サービスパック 】 WinXP SP2(TCP最大接続数200に設定済み)
【CP仕様】CPU:ペンティアムD 2.8Ghz メモリ:1GB×1
【BitCometのバージョン】 0.70
【プロバイダー】plala
【回線種別】Bフレッツマンションタイプ
【過去最大速度】[ 3900 KB/s / 1000 KB/s ](下り/上り)
【普段よく見る速度】[1000〜2000 KB/s / 300〜500 KB/s ](下り/上り)

自分の設定と結果は、

全体の最大ダウンロード速度:無制限  全体の最大アップロード速度:1000 KB/s
最大同時ダウンロード数:2
タスクごとの最大接続数:150
全体の最大アップロード接続数:5
TCP接続の最大試行数:100
ピアごとのダウンロードタスクの最大セッション数:3
ピアごとのアップロードタスクの最大セッション数:1
最小ディスクキャッシュ容量:550
最大ディスクキャッシュ容量:700
指定範囲内でディスクキャッシュ容量を自動調整する:ON

だいたいこんな感じです。
最大ディスクキャッシュ容量の設定はほぼ無意味で、
実際には最小ディスクキャッシュ容量に設定した値までしかキャッシュされません。
最小100MB、最大700、自動調整ON にしても、実際には100MBまでしかキャッシュが確保されないので、設定には意味がありません。

http://isp.oshietekun.net/index.php?FrontPage
では問題外とされているplalaですが、速度はそれなりに出ている方だと思います。
午後9時〜午前1時の混み合う時間帯でも速度が落ちることはありません。
メンテ

Page: 1 | 2 | 全部表示 スレッド一覧 新規スレッド作成

Re:キャッシュの設定 ( No.12 )
日時: 2007/09/02 23:56
名前: GF ID:ggih6ANw

酒仙さんのアドバイス通り再インストール(クリーンインストール)してみましたが、結果は同じでした。
どうやら私の所持するPCに共通して導入している何かが、Bitcometの動作に干渉しているようですね。
しかし実質的には最小0MB、最大500MBに設定している状態としてしっかり動作しているので問題なしとします(笑)。
ちなみに私の環境では最小ディスクキャッシュ容量の大小に関わらず、最小空き物理メモリ容量の設定値(20MB)はしっかり守られています。

ところで、swingerさんの書き込みを見てハッとしました。
私の環境で最大500MBは大きすぎて、場合によってはパフォーマンスの低下を引き起こしているのではないかと。
グラフィックがオンボードなので、物理メモリは実質960MB程度です。
起動直後で空き物理メモリが600MBちょっとなので、最大限に、それでも少し余裕を見てBitcometに振り分けたつもりでした。
しかし実際にはスレイプニル(ブラウザ)の60MBを筆頭に、音楽を聴いたり細かなファイルを連続で開いたり、
結構メモリを使っていてページファイルも増えていました。
BitcometのディスクキャッシュはDL・UL速度の向上に貢献するのはもちろんですが、なによりHDDへのアクセス軽減が第一です。

以下は私の想像で、間違っていればBitcometの仕様に詳しい方に訂正してほしいのですが、
Bitcometは保存先に設定したディレクトリに書き込む時のみ、書き込み実行数としてカウントされます。
ディスクキャッシュの一部がページファイル(ウィンドウズの仮想メモリ)としてスワップされていて
Cドライブ等にキャッシュとして書き込まれても、書き込み実行数にはカウントされずにキャッシュのヒット率上昇に貢献してしまいます。
それはつまり、統計で書き込み実行頻度が低くヒット率が95%以上の高い数値を示していたとしても、
実際にはHDDに激しくアクセスしている可能性があるということです。
本末転倒もいいところですね。

試しに最大キャッシュを500MBから300MBに下げて、いつも通りwebや音楽を長時間楽しみましたが、
BitcometのDL・UL速度・読み書き実行頻度・ヒット率にはほとんど影響ありませんでした。
ページファイルがいつもより確実に減っているので、ページファイルを含めた実質的なHDDへのアクセスは減少したのではと推測します。

空き物理メモリのほとんどをBitcometのキャッシュに割り当てるのは、
「Bitcomet以外のアプリケーションを全て閉じてBitcomet以外の操作はしない」場合に限った方が良さそうですね。
ダウンロードした動画のプレビューなんかした時には、ほぼ確実にディスクキャッシュがスワップされていると思います。
また、メモリ管理系のソフトにも気をつけた方が良さそうです。
強引なスワップで、大量のキャッシュをページファイルにスワップされてしまうかもしれません。
空き物理メモリはまだまだあるのに、HDD(ページファイル)へのアクセスが頻繁に行われる状態になってしまいます。
キャッシュを大きく設定するときにはメモリ管理ソフトは切っておく方がいいかも知れませんね。

以上、長々と失礼しました。見当違いだったらごめんなさい(笑)。
メンテ
キャッシュ分の仮想メモリ ( No.13 )
日時: 2007/09/03 09:15
名前: 酒仙◆2rfd.9VGX6 ID:zpkQYhUQ

メモリ上にキャッシュ領域を確保すると、そのキャッシュ領域に応じた仮想メモリが確保されます。
例としてコピープログラムを示します。(ちゃんとしたバッファリングじゃないですけど)
読み込みバッファ:rb:4kByte
書き出しバッファ:wb:1MByte
書き出しバッファの参照:wbp = wb
実際に読み込んだ量:s
while(!eof){
s = read(rb)
copy(wbp, rb, s) // wbpにrbをsだけコピー
wbp += s; // wbpの位置を更新
if(wbp >= wb + 1M || eof()){
write(wb, wbp - wb) // wbをwbp-wbだけ書き出す
}
}

これで1MByteのバッファを持つコピープログラムが出来ます。
実際に組んで試したところ、書き出しバッファの1MByteを確保したときに実メモリだけでなく仮想メモリも1Mほど増えました。(読み込み前です。もしかすると逆で、仮想→実かも)
このことから、ディスクキャッシュをとると必ず仮想メモリが確保されるが、その仮想メモリにはアクセスしないと思われます。
実際プログラム上はメモリへのアクセスがある限りそのデータが仮想メモリに追いやられることは基本的にないですから。

ですので仮想メモリに書き出すということは無いはずです。
メンテ
残っている物理メモリを想定して設定 ( No.14 )
日時: 2007/09/04 09:16
名前: きりしま◆.CzKQna1OU ID:LTKef6aM メールを送信する

基本的には、
ハードディスクへのアクセスを軽減するためのキャッシュですから、
物理メモリ上に配置されていないとあまり意味がありません。

ですから、通常の使用をした場合に、メモリを使い切ってしまうような
実装量・使い方の場合は、巨大なキャッシュを設定しても意味がないでしょう。

原則として、
通常の使用時に残っている物理メモリ量を想定して設定するべきではあると思います。

あと、同時に多数のタスクを走らせている人と、あまり数が多くない人では、
ディスクキャッシュの重要度・有効性も異なってくるのでしょうね。
メンテ
物理メモリ上でないと意味がないということは ( No.15 )
日時: 2007/09/06 21:49
名前: GF ID:6mwEth0g

お二方ともレスありがとうございます。
物理メモリ上でないと意味がないということは、やはり仮想メモリにスワップされてしまうことがあるということですね。
有名どころのメモリ管理ソフトは主な機能として物理空きメモリ量を監視して強制的なスワップを行いますから、注意が必要ですね。

現在のところ最大ディスクキャッシュ容量を300MBにて使用中ですが、
DL速度1600程度で実行タスクが1つの時、書き込み実行頻度0.2〜0.7回/s程度。
DL速度1800程度で実行タスクが2つの時、書き込み実行頻度2.0〜3.7回/s程度。
DL速度1500程度で実行タスクが3つの時、書き込み実行頻度2.5〜5.0回/s程度でした。

3つのパターンにおいて、速度に大差はありませんが実行タスクの数に応じてHDDへのアクセスは確実に増加しました。
ごく簡単なサンプリング調査なのでいつもこの数値となるわけではありません。
書き込み実行頻度2.5〜5.0回/sが多いのか少ないのかもわかりませんが、設定で試行錯誤されている方の参考になればと思います。
メンテ
本筋ではないので簡単に ( No.16 )
日時: 2007/09/06 23:55
名前: K2◆2LEFd5iAoc ID:i0LJ53Ws

スワップとページングは異なります。BitCometのようにほぼ常時動作しているプロセスは普通スワップアウトされません。されるとしたら、マシンのメモリが足りないということになります。

キャッシュはきりしまさんが仰っているように、BitCometでタスクを動かしていないときの空きメモリを確認して、その量以下に納めるべきでしょう。その設定でキャッシュが最大になっているのに、HDDへの実アクセスが頻繁なようであれば、やはりメモリが足りません。(この場合、BitCometの反応がかなり鈍くなるのですぐ分かると思いますが)

あと、実メモリと仮想メモリに分けて考えるのはプログラム的に意味がありません。全て仮想メモリ上に展開されます。だから、プログラムがメモリを割り当てれば仮想メモリが増えるのは当たり前です。
メンテ

Page: 1 | 2 | 全部表示 スレッド一覧 新規スレッド作成