タグ

linuxに関するSpring_MTのブックマーク (26)

  • Ctrl+Cとkill -SIGINTの違いからLinuxプロセスグループを理解する | ギークを目指して

    しばらくLinuxネタが続く・・。 近いうちに最近出たJava8ネタを書いてみようと思います。が、もう少しLinuxネタにお付き合いください。 前回はsshdを対象に親プロセスをkillした場合の動作を確認した。 killされたプロセスの子プロセスは孤児プロセスとなり、カーネルによって自動的にinitプロセスの子として扱われる事を説明した。(この動作を「リペアレンティング」と呼ぶ) 今回はこの続き。 Linuxで作業していてCtrl+Cしてプロセスを終了した場合、フォアグラウンドのプロセスやその子プロセスも一緒に終了する。 ということは、子プロセスは孤児として扱われず、リペアレンティングされていないことになる。 今回の記事ではこの振る舞いの違い(リペアレンティングされるか否か)に着目し、kill -SIGINTコマンドとCtrl+Cの違いについて考えていく。 そもそもkillコマンドやCt

    Ctrl+Cとkill -SIGINTの違いからLinuxプロセスグループを理解する | ギークを目指して
  • Performance Tuning Linux Instances on EC2

    Recent posts: 24 Mar 2024 » Linux Crisis Tools 17 Mar 2024 » The Return of the Frame Pointers 10 Mar 2024 » eBPF Documentary 28 Apr 2023 » eBPF Observability Tools Are Not Security Tools 01 Mar 2023 » USENIX SREcon APAC 2022: Computing Performance: What's on the Horizon 17 Feb 2023 » USENIX SREcon APAC 2023: CFP 02 May 2022 » Brendan@Intel.com 15 Apr 2022 » Netflix End of Series 1 09 Apr 2022 » Te

  • Linuxでロードバランサやキャッシュサーバをマルチコアスケールさせるためのカーネルチューニング - ゆううきブログ

    記事の公開後の2016年7月にはてなにおけるチューニング事例を紹介した。 はてなにおけるLinuxネットワークスタックパフォーマンス改善 / Linux network performance improvement at hatena - Speaker Deck HAProxy や nginx などのソフトウェアロードバランサやリバースプロキシ、memcached などの KVS のような高パケットレートになりやすいネットワークアプリケーションにおいて、単一の CPU コアに負荷が偏り、マルチコアスケールしないことがあります。 今回は、このようなネットワークアプリケーションにおいて CPU 負荷がマルチコアスケールしない理由と、マルチコアスケールさせるための Linux カーネルのネットワークスタックのチューニング手法として RFS (Receive Flow Steering) を

    Linuxでロードバランサやキャッシュサーバをマルチコアスケールさせるためのカーネルチューニング - ゆううきブログ
  • 一時ファイルとdentry cacheとメモリ - blog.nomadscafe.jp

    わりと長い間悩んでいたんだけど、最近解決したのでメモ。 サービスで利用しているsmalllightの画像変換サーバが、Apacheが使っているメモリ以上のメモリを使用し、Swapしたりメモリ枯渇でサーバがダウンするなどのことが何度かありました。 ↑メモリの動きはこんな感じ いろいろ調べた結果「dentry cache」なるものがメモリ多くを占めていることがわかりました。dentry cacheはディレクトリやファイル名とinodeとを結びつけに使われるキャッシュです。smalllightでは画像を変換する際に一時ファイルを作成するので、その情報が残るようです。 手元で再現させる 番で使っているサーバはCentOS5系ですが、手元のVagrant上のCentOS6(ファイルシステムはext4)で、再現させてみました。 use Parallel::Prefork; use File::Tem

    Spring_MT
    Spring_MT 2017/04/20
    これ swap切るとリーピングで解消したりしないかな
  • Linuxの背後にある精神

    Linus Torvalds / 青木靖 訳 2016年2月 (TED2016) クリス・アンダーソン 奇妙な話です。あなたのソフトウェアであるLinuxは何百万というコンピュータの中にあり、インターネットのかなりの部分を動かしています。さらに実際に使われているAndroid端末が15億台くらいあって、その1台1台にもあなたのソフトウェアが入っています。これはすごいことで、その開発部ともなれば、さぞ大層な施設なんだろうなと思っていたので、この写真を見たときはびっくりしました。これがその — Linux世界部なんですよね?(笑)(拍手) リーナス・トーバルズ 大したものには見えませんよね。この写真の中で最も興味深く、多くの人が反応する部分は、あのトレッドミル・デスクです。私の仕事場で一番興味深いものですが、私はもう使っていません。この2つは関連していると思います。私の働き方として、外的な

    Linuxの背後にある精神
  • 現代ITインフラの王道をゆくLinuxパッケージ管理の基本構成 | 外道父の匠

    RedHat系におけるRPMパッケージを扱うYUM、Debian系におけるDEBパッケージを扱うAPT、これらはサーバー管理において重要なわけですが、絶妙な度合いで、おざなりに扱ってもわりとなんとか運用出来てしまう感があります。そのため今一度、こんな感じが今風のスタンダードじゃないっすかね(キリッ という構成を説明してみます。 ぶっちゃけ、たいしたことないネタの集合体なので、タイトルに下駄を履かせました。 そもそもパッケージは必要なのか 言うまでもなく必須です。理由は、インストール物のファイル管理が容易になるのと、インストール時間を短縮できるからです。既存のパッケージでconfigureオプションが物足りない時や、RPMパッケージが存在しない場合は作成することになります。 最近はプロビジョニング・ツールによって全て自動化できるので、超簡素なコンパイルのものはレシピに落とし込んで終わりにした

    現代ITインフラの王道をゆくLinuxパッケージ管理の基本構成 | 外道父の匠
  • OOM Killerにであったら何をするべきか?

    OOM killerで大事なプロセスが殺される。困りますね。。 google で OOM Killerと入力すると 「無効」とか補完されます。しかしどうするのが良いのか、あまりよく説明されている記事がみあたらなかったので自分の考えをメモしておきます。 OOM Killer の目的は何か? まずは何故OOM Killerが発生しているのかについて、ざっくりイメージをつかみましょう。linux kernelはプロセスからの「メモリくれ」という要求に対してたぶん足りそうだという場合に「OK」といって渡します。実際のメモリ割り当てはアクセスが発生するタイミングまで遅延させます。これを遅延アロケーションといい、だいたいにおいてうまく動きます。ただし必ずうまくいくと保証されているわけではないので破綻することがあります。 OOM Killerはこの遅延アロケーションが破綻しそうなときに、適当にプロセスを

  • Linuxサーバにログインしたらいつもやっているオペレーション - ゆううきブログ

    主にアプリケーション開発者向けに、Linuxサーバ上の問題を調査するために、ウェブオペレーションエンジニアとして日常的にやっていることを紹介します。 とりあえず調べたことを羅列しているのではなく、当に自分が現場で使っているものだけに情報を絞っています。 普段使っているけれども、アプリケーション開発者向きではないものはあえて省いています。 MySQLNginxなど、個別のミドルウェアに限定したノウハウについては書いていません。 ログインしたらまず確認すること 他にログインしている人がいるか確認(w) サーバの稼働時間の確認 (uptime) プロセスツリーをみる (ps) NICやIPアドレスの確認 (ip) ファイルシステムの確認(df) 負荷状況確認 top iostat netstat / ss ログ調査 /var/log/messages or /var/log/syslog /

    Linuxサーバにログインしたらいつもやっているオペレーション - ゆううきブログ
  • Yum Command Cheat Sheet for Red Hat Enterprise Linux - Red Hat Customer Portal

    Red Hat Insights Increase visibility into IT operations to detect and resolve technical issues before they impact your business. Learn More Go to Insights Red Hat Product Security Center Engage with our Red Hat Product Security team, access security updates, and ensure your environments are not exposed to any known security vulnerabilities. Product Security Center

    Yum Command Cheat Sheet for Red Hat Enterprise Linux - Red Hat Customer Portal
  • Linux共有ライブラリの簡単なまとめ - wagavulin's blog

    Linuxで共有ライブラリ(*.so)を作るようになったのでちょっと勉強してみた。今までは使うだけだったので、以下のようなことは知っていた。 作るときはgccの-sharedオプションを使う。 使うときはgccの"-lライブラリ名"でリンクするライブラリを指定する。 リンク時のライブラリ探索パスは-Lオプションで指定する。 実行時のライブラリ探索パスは/etc/ld.so.confに書いてあるディレクトリ。環境変数LD_LIBRARY_PATHでも指定可能。 ライブラリを作るときは、.cから.oを作るときに-fPICをつけるといいらしい。 新しくライブラリを入れたときはldconfigするといいらしい。 逆に今まであまり知らなかったこと。 ほとんどのライブラリはlibhoge.so, libhoge.so.1, libhoge.so.1.1のように3つくらいのファイルがあり、libhoge

    Linux共有ライブラリの簡単なまとめ - wagavulin's blog
  • 宁波逼拘旅行社

    宁波逼拘旅行社
  • Linux のオーバーコミットについて調べてみた

    Linux のオーバーコミットについて調べてみた Linux のオーバーコミットのはなし(これを書いたのは Linux 2.6.38 のとき) Linux カーネルは実メモリ以上にメモリをプロセスに割り当てることができる この仕組みをオーバーコミット (over-commit) と呼ぶ オーバーコミットでは,とりあえずメモリを malloc させて仮のアドレスを返しておき, 実際に使われる段になってはじめて実メモリを確保する. 実験ただ malloc し続けるだけのプログラムを作って実験してみる. このプログラムをメモリ 1 GB + スワップ 1 GB のホストで実行してみると, $ free -t total used free shared buffers cached Mem: 1022404 82992 939412 0 4172 12280 -/+ buffers/cache:

    Linux のオーバーコミットについて調べてみた
  • いやなブログ: 普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す

    普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す Linux などの多くの Unix 的なOS には ptrace というシステムコールがあります。 ptrace を使うと実行中のプロセスに対して、レジスタの書き換えやメモリ上のデータの書き換えといったさまざまな操作を行うことができます。 普通のやつらの下を行けの第6回として、今回は ptrace を使って実行中のプロセスにちょっかいを出す方法を取り上げたいと思います。 ptrace とは デバッガの理論と実装 に次のような記述があります。 Unix の ptrace() は物のデバッガ API (アプリケーションプログラムインターフェイス) の一例であり、商品に相応しい品質を持ったデバッガをサポートするために設計された、最初の専用 API の1つである。 ptrace はデバッガ用に作られた API のようで

  • .soや.dylibや.aファイル、共有ライブラリなどについて調べてみた - kanonji’s diary

    MacPortsでswftools@0.9.2を入れようとしたら失敗した - kanonjiの日記、MacPortsで入れる代わりに自前でビルドしたライブラリを使ってswftoolsをビルドしてみた - kanonjiの日記で、ビルドする時のライブラリについての知識が足りず困ったので、ちょっと調べてみました。基的にLinuxについて調べてて、Macについても分かったところがあるって感じです。 ちゃんとまとめるほど理解出来てるわけじゃないので、分かった事を並べる感じで書きます。勘違いしてたり、ちょっと用語がおかしかったりするかもしれません。 LinuxMacでは仕組みが違う LinuxではELF(Executable and Linking Format)という実行ファイルフォーマットがあって、この辺を調べていくとよくELFという単語を見かけます。 Macはというと、Mach-Oという実

    .soや.dylibや.aファイル、共有ライブラリなどについて調べてみた - kanonji’s diary
  • 標準コマンドから乗り換えよう!より良いLinuxコマンドラインユーティリティー11選 | 俺的備忘録 〜なんかいろいろ〜

    Linuxの標準コマンドは強力なものではあるが、実際に人間が使う際にわかりやすいか、というと十分ではない。 そこで、今回はLinuxの標準コマンドから乗り換える事が可能なコマンドラインユーティリティーを調査、整理してまとめてみることにした。 1.df → dfc まずはこれ。以前にこちらでも記述している。 dfコマンドをより分かりやすくしたコマンドで、バーで利用率を認識することが出来る。 インストールは以下のコマンドで行える。 sudo apt-get install dfc (Debian or Ubuntu) 2.vmstat → dstat パフォーマンスのモニタリングでよく用いられるvmstatを、更に拡張したコマンドであるdstatにする。 dstatには、vmstatにはないネットワークに関するパフォーマンスが追加されており、見た目も見やすくなっている。 インストールは以下のコ

  • perf statでL1,L2(,L3)キャッシュミス測定 - 俺とお前とlaysakura

    この記事は↓に移転しました。 laysakura.github.io

    perf statでL1,L2(,L3)キャッシュミス測定 - 俺とお前とlaysakura
  • プロセス、スレッド、ファイバ、タスク、ジョブ、違いを整理してみよう - Schi Heil と叫ぶために

    まずは分かりやすいプロセスとスレッドから。 WindowsLinux などの汎用 OS 上のアプリケーションは一般にプロセスとして動作している。プロセスはプログラムの実行単位である。プロセスは1つ以上のスレッドと、ファイル、ヒープメモリなどのリソースで構成される。一方、スレッドは CPU 利用の単位である。スレッドはそれぞれが専用のスタックと CPU レジスタのコピーを保持するが、ファイルやヒープメモリは同一プロセス内の全てのスレッドで共有する。 スレッドのさらにサブセットがファイバである。スレッドとの違いは切り替え動作にありファイバのほうが軽いというメリットがある。プロセス、スレッド、ファイバの関係はこちらの説明が分かりやすかった。 プロセスはプログラム実行のための固有のメモリ空間を持っており、最も独立性の高い実行単位である反面、起動や切り替えに時間がかかるという特性を持っています

    プロセス、スレッド、ファイバ、タスク、ジョブ、違いを整理してみよう - Schi Heil と叫ぶために
  • x86 Linux のメモリモデル、プロセス空間切り替え、カーネルスタック - naoyaのはてなダイアリー

    ひとつ前のエントリ id:naoya:20070924:1190653790 では Linux のコンテキストスイッチにおける、主にハードウェアコンテキストの退避/復帰の処理を追ってみました。その中で カーネルスタック (switch_to() 内で pushl %ebp とかして値が積まれるスタック)とはそのときの実行コンテキストに紐づくカーネルプロセススタックという理解でよいか。 という疑問がもやもや湧いて出てきました。ここ数日 はじめて読む486―32ビットコンピュータをやさしく語る を読んでいたのですが、その中にこの疑問への答えへの入り口が載っていまして、そこを糸口に調べてみました。で、結果としては 答え: 良い でした。 x86 は特権レベルの移行と連動してスタックポインタを切り替える仕組みを持っています。Linux の場合モードはカーネルモード(特権レベル0) とユーザーモード

    x86 Linux のメモリモデル、プロセス空間切り替え、カーネルスタック - naoyaのはてなダイアリー
  • サーバのトラブルシューティングにsysdigが使えそう - $web->{note};

    sysdig とは? Sysdig is open source, system-level exploration: capture system state and activity from a running Linux instance, then save, filter and analyze. Think of it as strace + tcpdump + lsof + awesome sauce. With a little Lua cherry on top. http://www.sysdig.org/ 上に書いてある通り、一言で言うと strace + tcpdump + lsof + α。tcpdumpのように-wで書き出して-rで読み込めるのがありがたい。 高機能過ぎてまだ全然使いこなせてないけど、ぱっと触った感じ使えそうだなと思ったものを紹介。 1. プロ

    サーバのトラブルシューティングにsysdigが使えそう - $web->{note};
  • [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