さくらVPSが重くてアクセスが遅い、公式サポートでTSOオフにしろ!試してみた


sakura_vps_tso_01

さくらVPSを使っていて、アクセスが重い・表示が遅い!って思うことが多々あります。安いプランなのでCPUやメモリ大したスペックでないけど、それほどアクセスが多くないサイトで反応がないほど遅いなんて何か根本的な原因があるんじゃないかで調査したので備忘録とります。

さくらのVPSからのダウンロード方向の通信に遅延が発生する場合あり

さくらVPSでそういう現象、調べてみると結構あるみたいですね。さくらインターネット公式サポートサイト に対策が記載されていました。

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

とのことです。全部が遅くなるわけではなく、一部のVPSホストとプロバイダー等のクライアントとの相性で遅くなることがあるようです。

コマンドでTSOをオフにする

対策を見てみます。自分はCentOSなので

# ethtool -K eth0 tso off

TSO(TCP Segmentation Offload) をオフにするだけ。
TSOとはCPUのTCP通信の一部(セグメント分割タスク)をCPUとNIC(Network Interface Card)に分散処理すること。CPUって通信だけでなく他にも色々処理しないといけなくて大忙し!なのでTCP通信処理の一部(セグメント分割タスク)をNICにやってもらおうってこと。これでCPUの負担が減ってCPUは他の処理に専念しやすくなります。
でも、このNICがうまく他と連携してくれなかったり、通信によってはNICに負荷がかかりすぎてパンクしちゃったりしてうまくいかなくなることがあります。この場合に、通信が不安定になるのでNICじゃ重荷だからCPUが全部やるよ!ってしてやります。

設定ファイルでTSOをオフにする

ただ、上記方法だと再起動のたびにコマンドを叩かないといけないので、設定ファイルにします。

  • ファイル名
    /etc/udev/rules.d/50-eth_tso.rules
  • 内容
    ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth0", RUN+="/sbin/ethtool -K eth0 tso off"

公式サポートにはCentOS以外にも
Ubuntu、Debian、Fedora、FreeBSD
の対策方法が書かれていました。
これでしばらく様子見です。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です