タグ

networkとlinuxに関するoinumeのブックマーク (19)

  • Linux でのプロセスごとのネットワーク帯域制限 · GitHub

    cgroups の net_cls と tc を使えばできる。 http://blog.livedoor.jp/aspplus/archives/51842032.html に書いてあるとおりで良いようだ。 ただし、このページにも書いてあるとおり、 tc filter の記述は謎がある。しかし、このとおりに書けば期待通りになる。 なお、 filter の最後の cgroup を別の文字列に置き換えると動かないため、意味のある文字列として扱われていることは https://www.kernel.org/doc/Documentation/cgroups/net_cls.txt を読むと iptables も必要そうに読めるが、実際には不要だった。 結果の測定は iperf を使えば良い。 コマンドの実例は以下のとおり tc qdisc del dev eth0 root tc qdisc a

    Linux でのプロセスごとのネットワーク帯域制限 · GitHub
    oinume
    oinume 2016/07/15
    cgroupsを使えばいいのか
  • [Linux]trickleを使ってプログラムごとにアドホックに帯域制御する

    ネットワークの帯域制御は用途や手段に応じて様々な手段が存在する。 今回は、Linux 環境下で trickle を使ってプログラム単位でアドホックに帯域制御する方法をメモ。 trickle とは ユーザースペースで動作するトラフィックシェイパー ダイナミックローダーのプリローダー(LD_PRELOAD)を利用して socket の送受信に割り込んでトラフィックを制御 プログラム単位で制御 trickle をインストール RedHat Installation epel レポジトリからインストールする # yum info trickle ... Installed Packages Name : trickle Arch : x86_64 Version : 1.07 Release : 19.el6 Size : 89 k Repo : installed From repo : epe

    [Linux]trickleを使ってプログラムごとにアドホックに帯域制御する
  • Charming Python: Functional programming in Python, Part 3

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Charming Python: Functional programming in Python, Part 3
  • TCP connectionの保存と復元

    AIAWSで現世から離れる試み-仕事がちょっと大変な時もあったりするから�俺のかわりにAIにシステム作ってもらえるシステム作った話.pptxJun Suzuki

    TCP connectionの保存と復元
    oinume
    oinume 2013/06/22
    TCP_REPAIRというソケットオプションがKernel 3.5から追加されたらしい
  • SYN ACKが返ってこない太郎

    すげ、こまったお。 LBの配下に、WEBサーバ(apache)を複数台置いて画像を配信してたら MAC(OS X10.8.6)、ubuntu(11.04)で画像が見れたり、見れなかったり。 状況kwsk ・LBの振分ルールはラウンドロビン。 ・LBからWEBサーバに対しては、SNATしてる。 ・WEBサーバは常時2000コネクションくらい張っているんだけど 接続がまったくない状態でも同じ現象が発生する。 ・逆にWEBサーバが1台やら2台だと再現しない。 ・上記端末から、画像取得ができない(WindowsXP、Vista、7)はさくさくいける。 ・ブラウザ依存じゃなかった(Firefox、Opera、Safari、Choromeでもだめ) ・IPV6はONでもOFFでもでる。 ・Wiresharkでキャプチャしたら、SYN+ACKが返ってこない・SYNのリトライたくさん。 原因は・・・ ・サ

  • 「net.ipv4.tcp_tw_recycle」を有効にするのは(場合によっては)やめた方がいい - pullphone's blog

    そもそも「tcp_tw_recycle」ってなに? TIME_WAIT状態のソケット*1を高速に再利用するためのLinuxカーネル特有の仕組みらしい。 「/etc/sysctl.conf」でこいつ(net.ipv4.tcp_tw_recycle)を1にしてやって「sysctl -p」するだけで有効になります。 「TIME_WAITのソケットを少なくしてくれるんでしょ?いいじゃん!」という感じで設定してしまいそうになりますが・・・ なんでダメなの? 結論から言うと、こいつを有効にしたとき、同じグローバルIPのクライアントからの接続でかつTCPパケットにタイムスタンプ情報が入っている場合で、ほぼ同時にパケットを送ると、古いタイムスタンプの方のパケットを勝手にドロップしちゃいます。 どういうことなの・・・ 「tcp_tw_recycle」は、「同一IPからのパケットが到着したとき、使っていたソケ

    「net.ipv4.tcp_tw_recycle」を有効にするのは(場合によっては)やめた方がいい - pullphone's blog
  • Re: CentOS5でもRPS/RFSでNICが捗る話 - まいんだーのはてなブログ

    id:studio-m (nekoyaさん)にblogエントリで先を越されたけど自分はちょっと使い所と事情が異なっていそうだったのでそれを書いておきたく!! 0. RPS/RFS の利用 CentOS5 系でのやり方は nekoyaさんのエントリ を見てください。 CentOS6 系でのやり方は kazeburoさんのエントリ を見てください。 自分はkernel 2.6.39で試しましたが問題なく動作しました。 1. RPS/RFSの利用を迫られた背景 nekoya さんは app サーバの所でネットワーク問題が起こっていたようですが、自分の場合 LVS と outbound のトラフィックをさばいているLinuxルータで厳しいことになってきておりました。 この時発生する具体的な症状として LoadAverage が 1 で張り付いて応答が極端に悪くなる というものがあります。 これをど

    Re: CentOS5でもRPS/RFSでNICが捗る話 - まいんだーのはてなブログ
  • kernel: TCP: time wait bucket table overflow の解消とTIME_WAITを減らすチューニング - 気ままにインフラエンジニア

    整理がてら。 httpdが動いているあるホスト上で、 /var/log/messages に以下のようなメッセージが出ていた。 kernel: TCP: time wait bucket table overflow kernel: printk: 50078 messages suppressed. "netstat -tna |grep TIME_WAIT"すると、10万以上の数でTIME_WAITが出ている。これを解消するまでの流れ。 そもそもこの値は、カーネルパラメータの net.ipv4.tcp_max_tw_buckets で設定されている。デフォルトは16384。 (↑の通り、エラーが出た環境では既にかなり大きな値が設定されていたのだが。) /proc/sys/net/ipv4/tcp_max_tw_buckets システムが同時に保持する time-wait ソケットの最大

    kernel: TCP: time wait bucket table overflow の解消とTIME_WAITを減らすチューニング - 気ままにインフラエンジニア
  • いっぱい接続したいの - (ひ)メモ

    とあるホストに、TCP接続を張っては切るという処理をぐるんぐるん繰り返すベンチマーク的なプログラムを書いて動かしました。 最初のうちは期待した通りの動作をしてるんですが、途中から対向のホストにTCP接続できなくなってエラー出まくり。 $ netstat -tna | grep TIME_WAIT | wc -l 28230これが原因ぽい。 KERNEL_SOURCE/Documentation/networking/ip-sysctl.txt によれば、 ip_local_port_range - 2 INTEGERS Defines the local port range that is used by TCP and UDP to choose the local port. The first number is the first, the second the last loc

    いっぱい接続したいの - (ひ)メモ
  • どさにっき

    2008年4月21日(月) ■ 無題 _ 今朝の電車でおっさんが読んでたスポーツ新聞からちょっと見えてた見出し。頭のおかしい人が新幹線で全裸になってタイーホ。春だなぁ。 _ 出社してからニュースサイトを巡回して、それが ファーストサーバの社長だったと知る。あぁ。 _ ち、ちがうよっ、春だから頭のおかしい人が湧いてきたんじゃないよっ。だってレンタルサーバ会社の社長だよ? 頭がおかしいなんてことはないよ。最近のデータセンターは電力問題とか熱問題とかいろいろ大変だからね、きっと陽気がよくなってあったかくなったから熱暴走を起こして、その冷却のために大事なところを放熱してただけなんだよっ。 _ てか、ファーストサーバっていつのまにか yahoo の系列になってたのか。昔はクボタ(もちろん農業機械のクボタのことだ)の子会社だったよね、たしか。 2008年4月28日(月) ■ 無題 _ メール屋を廃業し

  • CLOSE_WAITの状態が続くとどうなるか - こせきの技術日記

    相手のアプリケーションがcloseして、こちらのアプリケーションがcloseせずにいる場合(ハーフクローズの状態、上の図参照)、一定時間後に相手側のFIN_WAIT2と、こちらのCLOSE_WAITが消えた。この現象は、2つのタイマーが関係しているらしい。 http://www.linux.or.jp/JM/html/LDP_man-pages/man7/tcp.7.html FIN_WAIT2は、 tcp_fin_timeout でタイムアウトする。デフォルトは60秒。 CLOSE_WAITは tcp_keepalive_time 秒後に(デフォルトは2時間)、接続が有効かどうかを確認する(keep-aliveプローブを送信)。 相手側がFIN_WAIT2で待っている場合は、ACKが返ってきて接続が維持される。 相手側が tcp_fin_timeout によってクローズ済みの場合、リセッ

    CLOSE_WAITの状態が続くとどうなるか - こせきの技術日記
  • bonding機能紹介と展望 NECシステムテクノロジー(株) ネットワークソフトウェア事業部 国本 英悟

    1 2005/11/11 LINUX Kernel Conference 1 bonding NEC ( ) 2005/11/11 LINUX Kernel Conference 2 2 2005/11/11 LINUX Kernel Conference 3 2005/11/11 LINUX Kernel Conference 4 Ethernet Ethernet MAC IP ( ) NIC 3 2005/11/11 LINUX Kernel Conference 5 bonding m S/W Hub NIC 7 NIC LINUX ‘ ’ 2005/11/11 LINUX Kernel Conference 6 Network bonding LINUX PC eth0 eth1 TCP IP App App PC PC PC bonding S/W Hub S/W Hub ?

  • 何か決めなきゃ駄目ですか。 Linuxのbacklogについて

    少しだけ突っ込んだ話。 (曖昧さは人間の脳内補完に委ねるとして・・・。) LinuxにはTCPの3Wayハンドシェイク(即ち、SYN,SYN/SCK,ACK)状態保持に関連して、 次のようなパラメータを持っている。 net.ipv4.tcp_max_syn_backlog=1024 何それ?って人は # sysctl -a | grep tcp 等のコマンドで探します。 # sysctl -a | grep backlog?それじゃノイズが無さすぎて面白くn(ry これは、「LinuxがSYNを受信し、SYN/ACKで応答した状態をいくつ保持するか」というもの。 閾値を超えると、Linuxは新規に接続しようとするホストのリクエスト(SYN)を無視する。 最近のLinuxを、最近のハードウェアにとりあえずインストールすると、 初期値は上記のような1024とか言う数値になっていると思う。 利用

    oinume
    oinume 2010/09/03
    ようするに、Linuxのbacklogの設定は、そのまま実効値になるわけではなく、 実効値 = ( 設定値*0.75 ) + 1 になるというわけだ。
  • [unix] Linux SYNパケット取りこぼし (2) 2007-05-21 - LowPriority

    前回の続き。 パケット自体を零さずに処理に入った後にSYNを落とすのは以下3パターン。 syncookie無効時にsynのbacklog(tcp_max_syn_backlog)が溢れている listenのbacklogが溢れている(3way-handshake完了後のaccept待ち接続) net.ipv4.tcp_tw_recycleの制限に抵触 で、今回問題になっていたのは最後のtcp_tw_recycleへの抵触だった。 現象として発生しうるのは、以下の条件をすべて満たす場合 サーバ側でnet.ipv4.tcp_tw_recycleが有効 TCPタイムスタンプオプションを使用 同一IPからの接続でセッションを跨ぐとセットされるTCPタイムスタンプの値が戻る場合がある 最後の条件が微妙だが、TCPタイムスタンプの値としてセットされる値は起動時を 起算時にしていたりと実装によって初期値

    [unix] Linux SYNパケット取りこぼし (2) 2007-05-21 - LowPriority
  • iptstate | Carpe Diem

    iptstate というコマンドがあることを始めて知りました。 iptstate は、netfilter の接続をトラックキングしているテーブルの情報を top のように表示してくれるコマンドです。 CentOS の場合は、すでに iptstate バージョン 1.4.1 が提供されていて、普通にインストールすると iptstate パッケージがインストールされています。 さっそく、試してみます。iptstate は、netfilter つまり iptables の接続トラックキングテーブルの情報を表示してくれるので、iptables が動作している必要があります。 $ sudo /usr/sbin/iptstate IPTables – State Top Version: 1.4          Sort: SrcIP           s to change sorting So

  • デフォルトゲートウェイの設定

    Linuxでデフォルトゲートウェイを設定するには、以下のコマンドを使用します。 作業はrootで行って下さい。 デフォルトゲートウェイの追加 /sbin/route add default gw ***.***.***.*** デフォルトゲートウェイの削除 /sbin/route delete default 設定内容の確認 /sbin/route で表示されるdefault行が、デフォルトゲートウェイの設定の設定になります。 ただ、コマンドで設定した場合は、再起動後設定内容が破棄されてしまいます。 永続的に設定したければ、/etc/sysconfig/networkもしくは、/etc/sysconfig/network-scripts/ifcfg-eth0に設定します。 エディタで/etc/sysconfig/networkを開き以下を追加 GATEWAY=***

  • ipcalcが便利 - Practice of Programming

    ネットマスクの計算とか、僕はとても苦手なんです。 そんなわけで、ipcalcというコマンド。 % ipcalc 192.168.255.0/25 Address: 192.168.255.0 11000000.10101000.11111111.0 0000000 Netmask: 255.255.255.128 = 25 11111111.11111111.11111111.1 0000000 Wildcard: 0.0.0.127 00000000.00000000.00000000.0 1111111 => Network: 192.168.255.0/25 11000000.10101000.11111111.0 0000000 HostMin: 192.168.255.1 11000000.10101000.11111111.0 0000001 HostMax: 192.168.

    ipcalcが便利 - Practice of Programming
  • Linux上でのIPエイリアスの設定方法について教えて下さい。…

    Linux上でのIPエイリアスの設定方法について教えて下さい。 192.168.10.12が割り当てられているマシン上で、 # ifconfig eth0:0 192.168.10.16 としたところ、外部から192.168.10.16宛のpingが通りました。 しかし、マシンを再起動すると設定が消えてしまいました。 静的なファイルで設定していなからだと思うのですが、再起動しても問題ないようにIPエイリアスの設定をするにはどうしたらよいのでしょうか?

  • 1枚のNICに複数のIPアドレスを割り当てたい

    上記は、メインとなるインターフェイス名(ここではeth0)の次に「:」(コロン)とエイリアス番号(通常は0から始まるエイリアスの連番)を指定している操作例だ。次に、実際に実行した場合のログも挙げておこう。 # ifconfig eth0 Link encap:Ethernet HWaddr 00:A0:24:E0:45:7B inet addr:172.16.7.208 Bcast:172.16.7.255 Mask:255.255.255.0 EtherTalk Phase 2 addr:65280/98 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3196423 errors:0 dropped:0 overruns:0 frame:0 TX packets:2467791 errors:0 dropped:0

    1枚のNICに複数のIPアドレスを割り当てたい
    oinume
    oinume 2007/04/07
    IPエイリアス
  • 1