回線速度

さくらのVPS において、不特定のVPS収容ホストとクライアント環境(プロバイダ等)の組み合わせにより、 さくらのVPS からのダウンロード方向の通信に遅延が発生する場合があります。

  • http・ftp・scp等でのファイルのダウンロード速度が極端に遅い。

  • ファイルをダウンロード中に通信が切断される。

  • ホームページの静的なコンテンツ表示に異常に時間がかかる。

上記のような現象が確認された場合、設定変更を行うことで回避できる場合があります。

CentOS

以下の手順は root として操作する必要があります。

ethtool コマンドの実行

ethtool コマンドにて tcp segmentation offload を off に設定します。

# ethtool -K eth0 tso off

上記設定は再起動を行うと無効になります。

設定の確認

下記のコマンドで tcp segmentation offload: off になっていることを確認します。

# ethtool -k eth0

Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: off
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: off
large-receive-offload: off

設定ファイルの作成

再起動後も設定を有効にする為に、/etc/udev/rules.d/ 以下に 50-eth_tso.rulesというファイルを作成して、下記の記述をします。

ファイル名

/etc/udev/rules.d/50-eth_tso.rules

内容

ACTION==”add”, SUBSYSTEM==”net”, KERNEL==”eth0″, RUN+=”/sbin/ethtool -K eth0 tso off”

以上で設定は完了です。

Ubuntu

ethtoolのインストール

Ubuntuの標準ではethtoolコマンドがインストールされていない為、ethtoolパッケージのインストールから行う必要があります。

$ sudo aptitude install ethtool

ethtoolコマンドの実行

ethtoolコマンドにて「tcp segmentation offload」をoffに設定します。

$ sudo ethtool -K eth0 tso off

設定の確認

下記のコマンドで tcp segmentation offload: off になっていることを確認します。

$ sudo ethtool -k eth0

Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: off
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: off
large-receive-offload: off

設定ファイルの作成

再起動後も設定を有効にする為に、/etc/network/interfacesに下記の記述を追加します。

ヒント

sudo または root として操作する必要があります。

ファイル名

/etc/network/interfaces

追加内容

ファイル末尾に追記
post-up /usr/sbin/ethtool -K eth0 tso off

以上で設定は完了です。

Debian

以下の手順は root として操作する必要があります。

ethtoolのインストール

Debianの標準ではethtoolコマンドがインストールされていない為、ethtoolパッケージのインストールから行う必要があります。

# aptitude install ethtool

ethtoolコマンドの実行

ethtoolコマンドにて「tcp segmentation offload」をoffに設定します。

# ethtool -K eth0 tso off

設定の確認

下記のコマンドで tcp segmentation offload: off になっていることを確認します。

# ethtool -k eth0

Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: off
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: off
large-receive-offload: off

設定ファイルの作成

再起動後も設定を有効にする為に、/etc/network/if-pre-up.d/に下記のファイルを新規追加します。

ファイル名

/etc/network/if-pre-up.d/tso

ファイルの内容

#!/bin/sh
ETHTOOL=/sbin/ethtool
$ETHTOOL -K eth0 tso off

ファイルのパーミションを変更

chmod 755 /etc/network/if-pre-up.d/tso

以上で設定は完了です。

Fedora

以下の手順は root として操作する必要があります。

ethtoolのインストール

FedoraのMinimumインストールではethtoolコマンドがインストールされていない為、ethtoolパッケージのインストールから行う必要があります。

# yum -y install ethtool

ethtool コマンドの実行

ethtool コマンドにて tcp segmentation offload を off に設定します。

# ethtool -K eth0 tso off

上記設定は再起動を行うと無効になります。

設定の確認

下記のコマンドで tcp segmentation offload: off になっていることを確認します。

# ethtool -k eth0

Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: off
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: off
large-receive-offload: off

設定ファイルの作成

再起動後も設定を有効にする為に、/etc/udev/rules.d/ 以下に 50-eth_tso.rulesというファイルを作成して、下記の記述をします。

ファイル名

/etc/udev/rules.d/50-eth_tso.rules

内容

ACTION==”add”, SUBSYSTEM==”net”, KERNEL==”eth0″, RUN+=”/sbin/ethtool -K eth0 tso off”

以上で設定は完了です。

FreeBSD

以下の手順は root として操作する必要があります。

現在の情報を確認する

下記のコマンドでtsoの現在の状態を確認します。

# sysctl net.inet.tcp.tso

net.inet.tcp.tso: 1

結果が1の場合、TSOは有効になっています。0の場合は、無効です。

コマンドの実行

sysctlコマンドで値の修正を実行します。

# sysctl net.inet.tcp.tso=0

net.inet.tcp.tso: 1 -> 0

設定ファイルの作成

再起動後も設定を有効にする為に、/etc/sysctl.confに下記の記述を追加します。

ファイル名

/etc/sysctl.conf

追加内容

net.inet.tcp.tso=0

追加設定

TSOを無効化した後にも、特定のクライアント、ネットワーク経路からのアクセスに時間がかかる場合は、以下の方法を合わせてお試ください。

設定対象

sysctl net.inet.tcp.inflight.enable

現在の情報を確認する

下記のコマンドで現在の状態を確認します。

# sysctl net.inet.tcp.inflight.enable

net.inet.tcp.inflight.enable: 1

デフォルト時の設定値は「1」となります。

コマンドの実行

sysctlコマンドで設定値を「0」に変更します。

# sysctl net.inet.tcp.inflight.enable=0

net.inet.tcp.inflight.enable: 1 -> 0

設定ファイルの作成

再起動後も設定を有効にする為に、/etc/sysctl.confに下記の記述を追加します。

ファイル名

/etc/sysctl.conf

追加内容

net.inet.tcp.inflight.enable=0

以上で設定は完了です。

この設定は低速な回線から さくらのVPS へ接続した場合に、ダウンロード方向への通信速度に影響がある場合があります。
アップロードの通信速度に影響はありません。

また、この設定をされる事で、クライアントからのアクセス環境によっては速度が遅くなる可能性がございます。
よって、個別にチューニングが必要となる場合がございます。チューニングに関する詳細は、FreeBSD公式ページや関連ウェブサイト、各種専門書籍等をご参考ください。