タグ

linuxとkernelに関するoinumeのブックマーク (18)

  • インターネットサーバでのPthreadとepoll(1)

    連載ではシステムコールプログラミングの例も掲載していく予定ですが、記事ではLinuxに追加されたepollを採りあげ、インターネットサーバでのPthread利用と比較してみます。 はじめに マルチスレッドプログラミングが普及し、POSIX threadも制定され、Pthreadの利用は目新しいものではなくなりましたが、スレッドにまつわる迷信や誤った認識を、だいぶ減ったとはいえ、今でもたびたび耳にします。例として、 スレッドはプロセスよりも軽いので、多数作成しても軽快に動作する スレッドはプログラミングを簡単にしてくれ、1つの処理だけに集中できる などがあります。しかし、これらは常に真であるとは限りません。記事ではマルチスレッドの概念や入門を繰り返すのではなく、その利用方法をHTTPサーバのサンプル実装を基に考察します。更にLinuxに追加された独自機能のepollインタフェースを用い

    インターネットサーバでのPthreadとepoll(1)
  • tcp_tw_なんとかの違い - Qiita

    自分用の覚書です。CentOS5とか6とかでの経験。 実際高負荷だとか負荷試験ツールで出ただとかのTIME_WAITを減らしたいというときに、 syctlで、tcp_なんとかを調整するというのは今ではよくあると思います。 (わたしはむかし運用していた某無料サイトで負荷に悩んだのが切欠で知りました。無料というだけで会員数激増的な風潮だったのと素行の悪い某国のクローラーとかrewriteのループとかの色々な芸の肥やし的な機会がというか夜中に起こされて眠りを妨げられたくなかったので色々調べたりしていました。) いっぱい接続したいの - (ひ)メモ Linux - ぜんぶTIME_WAITのせいだ! - Qiita ・TCPの終了待ちタイムアウト秒数を設定(default60sec) net.ipv4.tcp_fin_timeout = 10 ソケットを強制的にクローズする前に、最後のFINパケッ

    tcp_tw_なんとかの違い - Qiita
    oinume
    oinume 2016/06/21
    tcp_tw_reuseとか
  • Introduction · Linux Inside

    linux-insides A book-in-progress about the linux kernel and its insides. The goal is simple - to share my modest knowledge about the insides of the linux kernel and help people who are interested in linux kernel insides, and other low-level subject matter. Feel free to go through the book Start here Questions/Suggestions: Feel free about any questions or suggestions by pinging me at twitter @0xAX,

  • 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のリトライたくさん。 原因は・・・ ・サ

  • システムコールについてどれくらいご存じですか?

    システムコールについてどれくらいご存じですか?:知ってトクするシステムコール(1)(1/2 ページ) 「システムコール」と聞いて、どういう印象を受けますか? 「難しくて、自分では手に負えない」とか「使う必要を感じない」という方は多いでしょう。しかし、コンピュータを使う人ならどんな人でも、システムコールについて知っておくといろいろトクをするんですよ。(編集部) システムコール? 聞いたことはあるけど…… 企業情報システムや、Webアプリケーション、携帯機器向けアプリケーション、あるいはちょっとしたツールの作成など、なんらかの形でソフトウェア開発に携わったことのある方なら、一度は、「システムコール」という言葉を耳にしたことがあるはずだ。しかし、先に挙げたような分野のアプリケーション開発現場で、明示的にシステムコールを利用する開発者は多くない。 システムコールは、低レベルのプログラミングやカーネ

    システムコールについてどれくらいご存じですか?
  • 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を減らすチューニング - 気ままにインフラエンジニア
  • DBサーバの場合のLinuxチューニング - shibainu55日記

    今回はLinux上でPostgreSQLMySQLなどのDBMSを使う場合のLinuxカーネルチューニングについて。共有メモリ(shmallやshmmax)については設計時にもれなく設定の確認などをしている場合がほとんどだと思うが、それ以外のTipsとして、今回はLinuxのメモリオーバーコミットに関する記事。DBMS向けと書いたが、Linux上で動作させるソフトウェアであればDBMS以外でも考慮に入れて設計すべきポイントである。 Linuxのメモリ管理 Linuxのメモリ管理サブシステムには「メモリオーバーコミット」と呼ばれる機構があり、マシンに物理的に搭載されているメモリ以上の領域を確保できてしまう。この動作については、メモリ確保の際(Cの場合)実際に使われるmallocを使ったサンプルアプリなどで実際に挙動を確認することができる。参考までに、あるサイトの方は以下のようなサンプル(a

    DBサーバの場合のLinuxチューニング - shibainu55日記
  • どさにっき

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

  • https://docs.google.com/viewer?a=v&q=cache:surUGbLq1DQJ:image.gihyo.co.jp/assets/files/event/2008/24svr/report/2-24svr-TechMTG-ito.pdf+&hl=en&pid=bl&srcid=ADGEESisdoEAt03OJEl2IUxkiZl6VJL8oZ0LGfovGDqGct4tIFqk7na2Iq3eQqAL8S74m6XVX_Hixg4A65Iu6bdJIRts7pjxOkPs

  • vm.overcommit_memory = 2 のときに、実際の上限と今現在の値はどこで確認できるか? - (ひ)メモ

    (vm.overcommit_memoryの説明はぐぐってください: google:vm.overcommit_memory) 例えば vm.overcommit_memory = 2 vm.overcommit_ratio = 90なときに、実際の上限と今現在の値はどこで確認できるか? the total virtual address space on the system is limited to (SS + RAM*(r/100)), where SS is the size of the swap space, and RAM is the size of the physical memory, and r is the contents of the file /proc/sys/vm/overcommit_ratio. proc(5): process info pseu

    vm.overcommit_memory = 2 のときに、実際の上限と今現在の値はどこで確認できるか? - (ひ)メモ
  • Opensource.com

    Guilt is usually considered a negative emotion, but by steering it well, you can achieve surprising success.

  • 高負荷マシンのネットワークチューニング — ありえるえりあ

    Recent entries Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23 Herokuの発音 inoue 2010-12-20 雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18 IPA未踏のニュース inoue 2010-12-15 労基法とチキンゲーム inoue 2010-12-06 フロントエンドエンジニア inoue 2010-12-03 ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25 技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24 雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22 RESTの当惑 inoue 2010-11-22 「プ

  • 何か決めなきゃ駄目ですか。 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 になるというわけだ。
  • 第3部第1回 パラメータ変更でカーネル・チューニング

    Linuxカーネルは,CPUやメモリー,ディスク,ネットワークなどのさまざまなデバイスを管理・制御しています。カーネルがそれらを扱う際の設定をうまく変更すれば,各部分の性能を容易に向上できます。いくつかチューニングのキーとなるポイントを具体的に紹介します。 Linuxに精通した人なら「カーネル・チューニング」といえば,カーネル・コンパイル時の各種設定を書き換え,カーネルを再構築するといった方法を考えることでしょう。確かに,カーネルにはCPUやメモリー,I/O,ネットワーク,各種周辺デバイスに関する100以上の設定が,コンパイル時に用意されています。 ただカーネルの設定を書き換えて再構築しても飛躍的に性能を向上させることは難しいといえます。一般のLinuxディストリビューションに含まれるカーネルは,デスクトップやサーバーなどのさまざまな環境で最適に動作するように構築されているからです。 実は

    第3部第1回 パラメータ変更でカーネル・チューニング
  • [ThinkIT] 第5回:カーネルをチューニングする (1/4)

    Linuxのチューニングの際には「第2回:Linuxの設定情報を取得する」で説明したカーネル内部のパラメータの変更をする機会が多くあります。はじめにカーネルパラメータの変更方法を説明します。カーネルパラメータの変更にはいくつかの方法があります。

  • Linux のカーネル・パラメータ設定 | 日々の更新

    /etc/sysctl.conf kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 142 kernel.sem = 256 32000 100 142 fs.file-max = 131072 net.ipv4.ip_local_port_range = 20000 65000 kernel.msgmni = 2878 kernel.msgmax = 8192 kernel.msgmnb = 65535 /sbin/sysctl -p Linux では、ipcs コマンドを使用して、システムの現行の共有メモリー・セグメント、セマフォ・セット、およびそれらの識別番号と所有者を調べます。 カーネル・パラメータは、/proc ファイル・システムを使用して変更できます。次の手順に従ってください。 1. root

    Linux のカーネル・パラメータ設定 | 日々の更新
    oinume
    oinume 2009/04/30
    sysctlの設定
  • IBM Developer

    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.

    IBM Developer
    oinume
    oinume 2007/02/14
    2.4と2.6の比較。
  • DBサーバ向けLinuxチューニングを考える 〜 メモリオーバーコミット編 : DSAS開発者の部屋

    Cでプログラムを書いていて大量のメモリを確保したくなったとき、大抵は mallocを使うと思いますが、その際には戻り値がNULLかどうかを判断してエラー処理に飛ばすと思います。しかし、Linux のメモリ管理サブシステムには「メモリ・オーバーコミット」という機構があり、実装されているメモリ以上の領域を確保できてしまいます。 #include <stdio.h> #include <stdlib.h> int main() { int i; char *p; for(i=0;i<65536;i++){ p = (char *)malloc(65536); if(0 == (long)p){ break; } } printf("SIZE=%dMB\n",i*65536/1024/1024); return(0); } swapoff したメモリ 1G のマシンでこれを実行するとこんな感じにな

    DBサーバ向けLinuxチューニングを考える 〜 メモリオーバーコミット編 : DSAS開発者の部屋
    oinume
    oinume 2007/02/12
    OOM killer対策
  • 1