[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

linuxとKernelに関するkimutanskのブックマーク (25)

  • Etsukata blog: FreakOut DSP 入札サーバの CPU 使用率を 30% 削減する Performance Tuning

    はじめに 勤務先の FreakOut 社では RTB で広告枠を買い付ける DSP の開発・運用を行っています。RTB とは、インターネット広告のインプレッションが生じる毎に、広告枠の競争入札を行う仕組みです。 DSP とは、 RTB において、競争入札をする側のシステムになります。広告枠/広告を見ている人 に対し、最適な広告を、最適なタイミングで届ける機能を広告主に提供する仕組みです。 FreakOut DSP は最適な広告探索・入札価格調整のため、非常に多くのデータを参照し、沢山の演算処理を行います。広告を見ている人が過去にアクセスした Web ページの情報や検索ワード、さらに 広告がクリックされる予測確率(過去のログから機械学習で算出) などを参照し、入札価格を決定するのです。そのため、DSP で入札を担当するサーバは CPU がボトルネックになっており、台数も数百台に嵩んでいます。

    kimutansk
    kimutansk 2015/07/18
    CPUバウンドなユースケースにおいてはコンテキストスイッチ抑止でこうまで変わるものなんですね。で、Erlangでもこういうことしてましたか。
  • LinuxでTCP_DEFER_ACCEPTが有効でもaccept後readできない理由

    listen()のbacklogが不足した際のTCP_DEFER_ACCEPTの動作について - blog.nomadscafe.jpという記事の中で、listen backlog があふれた後に accept(2) すると、その後の read(2) が EAGAIN を返したり、接続が不安定になるという事象が説明されていました。気になったので調べてみたことをまとめます。 結論から言うとこれはLinuxの仕様です。manのtcp(7)を見ると、 TCP_DEFER_ACCEPT (since Linux 2.4) Allow a listener to be awakened only when data arrives on the socket. Takes an integer value (seconds), this can bound the maximum number of

    kimutansk
    kimutansk 2014/05/08
    DEFERが有効に働かないケースがある事象の詳細、と
  • DynamoDBやSQSといったAPIを高頻度に使うときに忘れずにセットしておきたいカーネルパラメータ - aws memo

    DynamoDB, SQSなどは、Linux内部から高頻度に HTTP APIを叩きに行くことになる。( Fluentdやら、memcachedやらも同じかも) 通常のLinuxのカーネルパラメータ設定で、番環境や、負荷テスト環境に使うと、おそらくネットワーク障害のような状況に陥るはず。 その時、「DynamoDBの IOPS不足?」「 SQSのAPI スロットリング?「AWSの限界?」と思う前に、これチェック! netstat -an この結果に、大量のTIME_WAITが表示された場合は、 エフェメラルポートが枯渇して socket作れない状態に陥っている。つまり、DynamoDBやSQSまでパケット届いていない状態なのでAWS側は原因ではない。 ということで、エフェメラルポートを最大限使うようにカーネルパラメータを設定しておくことを忘れないようにするためのメモ。 $ sudo cp

    DynamoDBやSQSといったAPIを高頻度に使うときに忘れずにセットしておきたいカーネルパラメータ - aws memo
    kimutansk
    kimutansk 2014/02/26
    DynamoでもSQSでもありませんが、一度これをやらかしてかなり焦ったことがありましたねぇ。
  • 新208.5日問題 - Systems with Intel® Xeon® Processor E5 hung after upgrade of Red Hat Enterprise Linux 6

    Linux の連続稼働時間が 208.5 日を過ぎた段階で突如 Kernel Panic を引き起こすという過激な挙動で2011年の年の瀬に話題となった "旧208.5日問題" ですが、あれから二年が経った今、Linux Kernel 内の bug と Intel Xeon CPU の bug の合わせ技により再度類似の不具合が発生することが分かっています。 旧 208.5 日問題の発生原理に関しては以下の blog が参考になります。 okkyの銀河制圧奇譚 : sched_clock() overflow after 208.5 days in Linux Kernel 追記(2014/1/4) 新208.5日問題の簡易チェックツールを作成しました。よろしければお使い下さい。 tsc_checker - 新208.5日問題簡易チェックツール また、Linux Kernel における時間

    kimutansk
    kimutansk 2013/12/25
    Xeon E5でRHEL6.2~6.4て、相当の数のサーバがあてはまりますね・・・
  • カーネルおさんぽまっぷ超入門

    Kernel/VM Advent Calender 2013 7日目 カーネル/VMはておくれなすごい人がけっこう集って、ネタとか披露しているようです. 今年のAdvent Calenderも既に濃い内容が集っています. でも、私達パンピーにはカーネルとかちょっと難しすぎてそもそも カーネル/VMという主題自体敬遠しちゃう…… ということで当にカーネルの第一歩をやってみよう、というのがこの記事です. 記事タイトルはえりっく氏(@siritori)から無断で肖ってます.ありがとうございます 今年の他の記事が高度な内容なので この記事が低レベル(低レイヤということでなく当に程度が低いという意味で)ですいません. 普段からカーネル/VMに参加してる皆様、さようなら. カーネル/VM界隈わいわいしてておもしろそうだけど怖くて敬遠してる方々、こんにちは. 前置きはこのぐらいで文行きます. 少々

    カーネルおさんぽまっぷ超入門
    kimutansk
    kimutansk 2013/12/11
    わかりやすいところから入っていくのはいいですね
  • Linux crash dump 読み方入門 : LinuxのKernel crash dumpからの 障害原因調査 / ミラクル・リナックス株式会社 Asianux開発本部 吉田 https://users.miraclelinux.com/support/files/u1/OSC2008_Spring_dumpver1_1.pdf

  • closeがEINTRを返したらどうするべきか

    中村 実 @nminoru_jp @kosaki55tea どうなんでしょう。close()がEINTRで返ってきた場合にリトライをかけないとリークが発生することがあります。FUSEでできた変なネットワークファイルシステムを使っている場合なんて特に。 2013-10-30 11:26:30 鯉江 @koie @nminoru_jp closeがエラーになったら異常系に飛ばしてました。EINTRリトライは考えてなかったっす。異常系処理でcloseするときもEINTRリトライはしないといけないなぁ。やばいなぁ。 2013-10-30 11:29:17 Tanaka Akira @tanaka_akr @nminoru_jp @kosaki55tea close(fd) が失敗した時に fd が生きていることがあるのですか。以前 NFS の quota でテストして close が失敗したときに

    closeがEINTRを返したらどうするべきか
  • Linuxでファイルディスクリプタが足りなくなりサービス停止障害 - モーグルとカバとパウダーの日記

    今日、Web/メール等のサービスを稼働させてる自社のLinuxサーバが、突然サービスが停止してしまう障害が発生した。 特にメールでトラブルが広がっており、プロセス見るとdovecot deliverとpop3が多数止まっている状況だった。 ログを見ると、deliverは「still being delivered」というエラー、pop3は「Too many open files in system」等のエラーを吐いていた。 最初はメールだけのトラブルと思い、とりあえずdovecotとpostfixのstopを掛けたのだが、デーモンの親プロセスは死ぬもののdeliverもpop3もSTATが「D」や「Ds」となっていたため「# kill -9」しても死なず。 いくつかログを見たところ、ファイルシステムの障害は考えにくかったため、リブートするしかなかろうということで「# shutdown -r

    Linuxでファイルディスクリプタが足りなくなりサービス停止障害 - モーグルとカバとパウダーの日記
    kimutansk
    kimutansk 2013/10/07
    kill -9でプロセス落とせず、shutdownも出来ず。。。ですか。ファイルディスクリプタ不足でここまでなりますか
  • カーネルパラメータとお茶目なガチャピン先生

    Sadayuki Furuhashi @frsyuki page allocation failure が発生している昨今、こさき先生の "page allocation failureの説明" が大変役に立っているのだけども、vm.min_free_kbytesの最適な値をどうすればいいのか大変悩ましい。 2013-10-05 05:59:03

    カーネルパラメータとお茶目なガチャピン先生
  • 2.5. Tuned および ktune Red Hat Enterprise Linux 6 | Red Hat Customer Portal

    電力管理ガイド 1. 概要 Expand section "1. 概要" Collapse section "1. 概要" 1.1. 電力管理の重要性 1.2. 電力管理の基礎 2. 電力管理の監査と分析 Expand section "2. 電力管理の監査と分析" Collapse section "2. 電力管理の監査と分析" 2.1. 監査と分析の概要 2.2. PowerTOP 2.3. Diskdevstat と netdevstat 2.4. Battery Life Tool Kit 2.5. Tuned および ktune Expand section "2.5. Tuned および ktune" Collapse section "2.5. Tuned および ktune" 2.5.1. tuned.conf ファイル 2.5.2. Tuned-adm 2.6. Devi

    2.5. Tuned および ktune Red Hat Enterprise Linux 6 | Red Hat Customer Portal
    kimutansk
    kimutansk 2013/10/06
    「Tuned はシステムコンポーネントの使用を監視して、その監視情報を基にして動的にシステム設定をチューニングするデーモン」ですか。へぇ。
  • CentOS 6 で Reverse Path Filtering (rp_filter) を無効にする方法 | だいたいおっけぇ

    CentOS 6 で Reverse Path Filtering (rp_filter) を無効にする方法は以下の通り。 /etc/sysctl.conf を修正 net.ipv4.conf.default.rp_filter = 0 これが有効( = 1 )になっていると、Linuxルーターを複数台使ってルーティングさせる場合 経由するLinuxルーターのルーティングテーブルとは逆方向だとみなされるパケットが破棄されてしまう。 例えば、経由するLinuxルーターが保持しないネットワークを送信元としたパケットが デフォルトルート側から転送されてきた場合に、パケットが破棄されてしまう。 環境: CentOS 6.3 (x86_64)

    kimutansk
    kimutansk 2013/08/27
    特定OSでの設定方法がこれと。今度似たような事象出たら試してみましょう。
  • 戻り経路フィルタ (Reverse Path Filtering)

    13.1. 戻り経路フィルタ (Reverse Path Filtering)デフォルトでは、ルータはすべてをルーティングします。 パケットが「明らかに」自分のネットワークには属していなくてもです。 よくある例は、プライベートの IP 空間がインターネットに漏れてしまう問題です。 195.96.96.0/24 に向かう経路があるインターフェースに対しては、 212.64.94.1 から発したパケットは、来到着しないはずです。 ほとんどの人はこの機能を無効にしたいと思うはずですから、 カーネルハッカー達はこれを簡単できるようにしてくれました。 /proc 以下にあるファイルを使うと、カーネルに対してこの指示ができます。 この方法は戻り経路フィルタ (Reverse Path Filtering) と呼ばれています。基的には、あるパケットに対する返信が、 そのパケットの入ってきたインターフ

    kimutansk
    kimutansk 2013/08/27
    で、どういうものかという解説がこれで・・・
  • rp_filter って?

    linux ネットワークセキュリティのことはじめ。みたいなページに /proc/sys/net/conf/eth#/rpfilter は 1 にしましょう。らしき事が書かれており、盲目的にそーゆーモン。と信じていたが LSRR 試し始めてふと気になった。 来ならば net/ipv4/fib_frontend.c の fib_validate_source() をフムフムと読みたいところなのだが... Understanding Linux Network Internals の力を借りる始末。曰く入ってきたデバイスの経路を調べて、そのデバイスを経由した到達の可否を判断 --- Reverse Path Filter --- ということらしい。淋しい自身の経路を示すと# ip route ls 172.27.202.0/24 via 172.27.129.1 dev eth0 proto

    kimutansk
    kimutansk 2013/08/27
    こういう形でフィルタかかっているわけですか。今までなんかうまくいかなかったケースにこういうのがまぎれているかもしれませんね
  • Dan Siemon

    I’ve been exploring AT Protocol and BlueSky a bunch lately and while I agree with his goals, I think Doctorow may be wrong about BlueSky because of the AT Protocol. https://pluralistic.net/2024/11/02/ulysses-pact/#tie-yourself-to-a-federated-mast BlueSky feels more like a popular RSS reader on top of the AT Protocol than it is a platform that’s easy to create lock-in. One example is ads, if they w

    Dan Siemon
    kimutansk
    kimutansk 2013/08/11
    Linuxのネットワークスタック内部構造とチューニングポイントと。チューニングの項目がわかるのはうれしいところです
  • Linuxカーネルチューニングのメモ - 電子書籍と趣味の部屋

    Post navigation ← Previous Home > Web関連 > 開発 > Linux > Linuxカーネルチューニングのメモ Linuxカーネルチューニングのメモ サーバー向けにLinuxカーネルのチューニングを行った際のメモです。 設定内容 今回行った /etc/sysctl.conf の設定内容は書きの通りです。 各パラメータの説明はコメントとして残しておきます。 # 共有メモリの最大サイズ。サーバーの搭載メモリ(1GB)に合わせて変更 kernel.shmmax = 1073741824 # システム全体の共有メモリ・ページの最大数 kernel.shmall = 262144 # システム全体のプロセス数の上限 kernel.threads-max = 1060863 # システム全体のファイルディスクリプタの上限 fs.file-max = 5242880

    kimutansk
    kimutansk 2013/06/18
    ネットワーク周りの重量級プロセスを動作させる場合この辺りの設定が必要ですからねぇ。とりあえず後で振り返れるようにしておきましょう。
  • kernelチューニング

    linuxサーバのOS全体に効くカーネルパラメータのチューニング箇所と その設定値、またその理由をまとめておく。 あくまで自分の環境ではこうした、というだけであり、 提供するサービスごとに検討が必要である。 どこをどう変更するのか、または変えないのか、その判断材料にはなるだろう。 ※ユーザ単位でシステムリソースに制限をかける場合をこちらを参照してほしい。 以下は/etc/sysctl.conf で設定するものとする。 ● 大規模サイト用チューニング kernel.pid_max 動作:pidの最大数 設定値:131072 理由:pidを枯渇させない vm.max_map_count 動作:mmapやmalloc時にメモリを仮想空間にマッピングできる最大ページ数 設定値:300000 理由:マッピングできなくなる事態を防ぐ net.core.somaxconn 動作:接続(ソケット)キューの

    kimutansk
    kimutansk 2013/06/18
    こういう形でのチューニングのサンプルにあたるものは貴重ですねぇ
  • Kernel panic – not syncing: Attempted to kill init! | とりあえずノートがわりに書いてます

    SELinuxを無効にしたらカーネルパニック CentOS6環境でSELinuxを有効にした場合と無効にした場合の動きの違いについてチェックしようと2つの環境を作ろうと作業を始めた。SELinuxをdisabledにするため/etc/sysconfig/selinixファイルの中の設定をdisabledにしてリブートする… なんとブートしようとして”Kernel panic – not syncing: Attempted to kill init!”というメッセージが出てブート途中で停止。あらーって感じ。調べるとブートの時にenforcing=0というパラメータが必要だそうだ。grubの設定ファイルに書けばいいのだが、その前にカーネルが立ち上がらない。 つまり、現在のブートパラメータにenforcing=0をつけて立ち上げなければならない。あちこちのサイトにgrubのコマンドラインに手で

    kimutansk
    kimutansk 2013/04/27
    かなりビビりました。Kernel起動時の設定も併せて変える必要があったんですね。。。
  • リーナス・トーバルズ、セキュアブート鍵をカーネルに含めることを一蹴、曰く「おめーら、フェラ大会じゃねーんだぞ」

    リーナス・トーバルズ、セキュアブート鍵をカーネルに含めることを一蹴、曰く「おめーら、フェラ大会じゃねーんだぞ」 まず、Red HatのDavid Howellsが、マイクロソフトによって署名されたセキュアブート鍵をカーネルに含めてくれるよう、MLで要請した。 ようリーナス。 このパッチセットをpullしてくんね? セキュアブートモードで動くカーネルに、鍵を動的に追加する機能。鍵をロードするには、新しい鍵はすでに持っていて、信頼されている鍵で署名されている必要がある。この「すでに持っている」ところの鍵は、カーネルに組み込まれているものや、UEFIデータベースにあるものや、あるいは暗号ハードウェアのものが含まれる。 で、"keyctl add"は署名されたX.509認証を受け付けるのだけど、マイクロソフトの署名サービスは、EFI PEバイナリしか署名してくれないんだ。 LKML: David

    kimutansk
    kimutansk 2013/02/28
    さすがとしか言いようがない対応。
  • OOMKillerに亭主を殺されて一年が経ちました。 - 私が亭主と出会ったのは今からちょうど4年2ヶ月前、私がGentoo... - Yahoo!知恵袋

    OOM Killerに亭主を殺されて一年が経ちました。 私が亭主と出会ったのは今からちょうど4年2ヶ月前、私がGentooをインストールしていたときでした。 亭主はそれなりに経験があるkernel hackerだったので、いとも簡単にGentooをインストールしてくれ、私は一目惚れしてしまいました。 幸い亭主も私も同じVim教だったので、教会で素敵な結婚式を挙げることができました。 少し下品な話ですがmakeに励んだおかげで子宝にも恵まれ、私たちは幸せに暮らしていました。 でも、二人とも気づかなかったのです。 まさか私たちのメモリが限界を迎えていたなんて、思ってもみませんでした。 「メモリ不足な昔の話だからどうせ私たちには関係ない」 - そう思っていたのが間違いだったのです。 亭主は突然、あの悪名高きOOM Killerに殺されてしまったのです。 そこからは悪夢のような日々でした。 毎日毎

    OOMKillerに亭主を殺されて一年が経ちました。 - 私が亭主と出会ったのは今からちょうど4年2ヶ月前、私がGentoo... - Yahoo!知恵袋
    kimutansk
    kimutansk 2013/02/08
    こういうのが普通に知恵袋にあるんですね・・・ ちなみに、亭主のプロセス種別は如何にw
  • あるプロセスが利用しているメモリサイズを procfs 経由で調べる - naoyaのはてなダイアリー

    お題は「あるプロセスがどの程度の物理メモリを利用したかを知りたい」です。 手っとりばやく知りたいときは top や ps などで調べると良いでしょうか。例えば手元の coLinuxtop して M キーでソートすると emacs のプロセスが最もメモリを使っているようです。 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1923 naoya 18 0 23120 19m 3096 S 0.0 2.0 0:55.40 emacsメモリサイズは VIRT と RES がありますが、VIRT は Virtual の略で仮想メモリ領域のサイズ、RES が Resident の略で、実際に使用している物理メモリ領域のサイズ。19MB ほど使っているようです。この emacs のプロセスが利用するメモリ領域はざっくり 20MB 程度と

    あるプロセスが利用しているメモリサイズを procfs 経由で調べる - naoyaのはてなダイアリー
    kimutansk
    kimutansk 2012/12/31
    こちらも。概念としては知っていても実際の見方はしりませんでしたねぇ・・・