[BitVisor-devel:116] lwip2.0.3によって発生したスループットの低下

高直我 naoga.taka @ gmail.com
2018年 12月 13日 (木) 13:55:21 JST


豊田工業高等専門学校情報科学専攻2年の高直我と申します。
現在、BitVisorを用いてシステムの開発を行っております。
BitVisorが利用しているlwipの転送についてひとつお聞きします。

現在、ストレージをフックし、ストレージI/Oに関するデータをlwipによって転送するシステムの実装を行っております。
BitVisorがlwip2.0.3を利用するようになったと伺い、最新版のBitVisor(コミットハッシュ:f8d6f8f)をクローンし既存の開発システムをマージしてテストをしました。

開発しているシステムを動作させた状態で、Windows7上でCrystalDiskMarkを用いてストレージI/Oのスループットを計測したところ、マージ前のシステムと比較して速度が約1/5に低下してしまう問題が発生いたしました。
マージ前のBitVisorでは2016年3月頃のlwipをクローンして利用しております。(バージョンは不明です。以前のBitVisorが利用していたlwip1.4.1は使っていません。)
opt.hのパラメータも以前使用していたものと同じ値にしてもパフォーマンスは改善されませんでした。
BitVisorのアップデート前後でソースコードの改変は行っていないので、BitVisorやlwipのバージョンを上げたことによって生じている問題だと考えています。もし原因として考えられる点がございましたら、ご指摘頂きたいと思うのですがいかがでしょうか。

参考までにdefconfigとopt.hの変更したパラメータ部分のdiffを添付させていただきます。お忙しいところ恐れ入りますが、ご回答いただけると幸いです。
よろしくお願いします。



・defconfig
struct config_data config = {
.vpn = {
// 省略
},
.storage = {
// 省略
},
.vmm = {
// 省略
.driver = {
.pci = "slot=01:00.0, driver=conceal, and, slot=02:00.0, driver=pro1000,
net=ippass, tty=1, and, slot=03:00.0, driver=conceal, and, slot=00:17.0,
driver=ahci",
},
// 省略
};

・opt.hのdiff結果
(1つ目の引数が変更後のopt.h、2つ目の引数がオリジナルのopt.hです。)

diff bitvisor/ip/lwip-2.0.3/src/include/lwip/opt.h
../bitvisor_latest/ip/lwip-2.0.3/src/include/lwip/opt.h
256,257c256
< //#define MEM_SIZE                        1600
< #define MEM_SIZE                         1024 * 1024 * 512
---
> #define MEM_SIZE                        1600
391,392c390
< //#define MEMP_NUM_TCP_SEG                16
< #define MEMP_NUM_TCP_SEG                65535
---
> #define MEMP_NUM_TCP_SEG                16
1185,1186c1183
< //#define TCP_MSS                         536
< #define TCP_MSS                         1460
---
> #define TCP_MSS                         536
1207,1208c1204
< //#define TCP_SND_BUF                     (2 * TCP_MSS)
< #define TCP_SND_BUF                    65535
---
> #define TCP_SND_BUF                     (2 * TCP_MSS)
1216,1217c1212
< //#define TCP_SND_QUEUELEN                ((4 * (TCP_SND_BUF) + (TCP_MSS
- 1))/(TCP_MSS))
< #define TCP_SND_QUEUELEN                 65535
---
> #define TCP_SND_QUEUELEN                ((4 * (TCP_SND_BUF) + (TCP_MSS -
1))/(TCP_MSS))
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
URL: <http://www.bitvisor.org/archives/bitvisor-devel/attachments/20181213/64998869/attachment.html>


BitVisor-devel メーリングリストの案内