2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

「俺の仮想マシンルーターがこんなに速いはずはないわ」と思って作ったけどゲスト OS の設定でどうにか出来るよって話

Posted at

概要

この記事は「「俺の仮想マシンルーターがこんなに速いはずはないわ」と思って作った件」の解決編の雑まとめです。

(先に)まとめ

SpeedTest by Ookla
10970941050.png

きっかけ

ある日、なんとなく『そういえば PF が遅くてなんだかなーって人はいるんだろうか』と Twitter で「FreeBSD pf slow」と検索したら同じように「なんだかなー」ってツイートがあったのでちょっと読み進めてみました。

ふと「Are you using FreeBSD on EC2 and networking is slow when enabling pf?」というツイートが目に入りました。
『まぁ EC2 も仮想マシンだしちょっと関連ありそうだなぁ』と思いリンクを開いてみたところ『「net.inet.tcp.tso」を0にすると早くなるかもよ?』と FreeBSD のフォーラムに書かれていました。

調べてみた

ところで TSO is 何?

TSO(TCP Segmentation Offload)について - @hana_shin

TSOは、NICが送信パケットをMTU長に分割する仕組みです。
以前は、カーネルで分割していましたが、最近はNICでパケットを分割することができます。
NICでパケットを分割することでカーネルの負荷を低減することができます。

FreeBSD 的に影響はあるの?

Configuration - Advanced Configuration Options - Networking Tab - pfSense1 Documentation2

This option is not desirable for routers and firewalls, but can benefit workstations and appliances. It is disabled by default, and should remain disabled unless the firewall is acting primarily or solely in an appliance/endpoint role.

なら設定を入れてみた

sysctl.conf(抜粋)
# NIC is slow
net.inet.tcp.tso=0
rc.conf(抜粋)
# e1000e
ifconfig_em0="-lro -tso"
ifconfig_em1="inet 192.168.0.1 netmask 255.255.255.0 -lro -tso"

まず em にオプションを追加してみましたが Ookla のスピードテストで測ったところ以前の結果とあまり変わらず。
ここでふと「あ、そういえば virtio でダウンがすげぇ出てたから virtio で試してみよう!」と思い浮かびました。

rc.conf(抜粋)
# virtio
ifconfig_vtnet0="-lro -tso"
ifconfig_vtnet1="inet 192.168.0.1 netmask 255.255.255.0 -lro -tso"

スピードテストの結果を見て思わず『うわっ、すげぇ出てんじゃん!!!』と叫んでしまいました。

まとめ

10970941050.png

( ゚д゚) ポカーン・・・
 
(つд⊂)ゴシゴシ

(;゚д゚) ・・・
 
(つд⊂)ゴシゴシゴシ

10970941050.png

( Д ) ゚ ゚ …!?

(ちょっとした)考察

仮想化する以前の FreeBSD ルーターには(新しくても2011年に買った)蟹さんの NIC を使っていたせいかこの設定は入れていませんでした。一応ギ蟹だったんですけど TSO なんていう高尚な機能は付いていなかったのかもしれないまま、仮想化した FreeBSD ルーターに設定することなく使わなかったんだろうと思います。
次に検証するときは sysctl を設定せずに ifconfig のオプションだけでも変えられるか試してみたいですねぇ。。。

おまけ

スピードテストを何回やって 100[Mbps] 超えしたことを確認したときに勝利の BGM として脳内で流れたのは「恋せよガオガイガー」でした。4シャア! 借りをまとめて返してやったぞ!!

  1. pfSense - Wikipedia

  2. FreeBSDの通信性能が悪いと感じたらLRO, TSOオプションをオフにしてみよう

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?