タグ

linuxに関するshin1x1のブックマーク (191)

  • mixiのサーバOS移行のお話 - ビルド&Kernel編 - mixi engineer blog

    こんにちは。年末と年度末になるとブログを書きたくなる運用部アプリ運用グループの清水です。 気づけば前回の記事から3ヶ月が経過してしまいました… 今回は、ビルド&Kernel編と題して、Fedora 17向けにおこなったパッケージのビルドや、KernelのConfig、TCP周りの変更点について紹介したいと思います。 パッケージのビルド OSが大幅にバージョンアップすると、依存しているライブラリに大きな変更が入ったり、RPMの仕様変更もあるため、Fedora 8時代のパッケージのリビルドなど、多くのRPMパッケージを作りなおさなければなりません。 mixiでは、Fedora標準パッケージとは別に150個以上のパッケージを、 configureなどビルドオプションを変える Fedoraで提供されないパッケージを作る ディストリビューションに依存しない構成のパッケージを作る(あとで紹介するPer

    mixiのサーバOS移行のお話 - ビルド&Kernel編 - mixi engineer blog
  • rsync の複雑怪奇な exclude と include の適用手順を理解しよう

    rsync は便利なんだけど、オプションが多くて難しい。特にややこしいのがファイルを選別するための --exclude と --include オプションだ。 man を読んでもイメージがつかみにくかったので、ググったり、-vvv の結果を見たり、ソースを読んだりしつつ調べてみたところ、3 つのルールを理解すれば何とかなりそうなことが分かった。 この記事では、その 3 つのルールをなるべく分かりやすく説明する。 ルール1: 指定順に意味がある コマンドライン引数は、通常、どの順番に指定しても同じ挙動になることが多い。しかし、rsync の include と exclude に関しては、指定順が意味を持つ。 man にも出てくる例で説明しよう。MP3 だけをコピーするには次のようにする。 -av はコピーするときのお決まりのオプション。ネットワーク越しにコピーするときは、-avz として圧

    rsync の複雑怪奇な exclude と include の適用手順を理解しよう
  • コンテキストスイッチの回数を調べる - Shohei Yoshida's Diary

    Starletのヘッダとボディを合わせて出力する閾値を変更してみる - Hateburo: kazeburo hatenablog この手の記事の話でコンテキストスイッチについて出てくることが あるけど、あまり数値が併記されているものがないように思えます。 その手のプロの人が言っているので、確かな情報だと思うのですが、 やはり数字を一緒に載せていただけるとより真実味が増すと思います。 プロセスのコンテキストスイッチ回数の確認方法(Linux) procfsから確認することができます % cat /proc/{目的のプロセスのPID}/status | grep ctxt voluntary_ctxt_switches: 145031 nonvoluntary_ctxt_switches: 13452自発的(voluntary)なコンテキストスイッチは、sched_yieldを呼び出した場合

    コンテキストスイッチの回数を調べる - Shohei Yoshida's Diary
  • Re: UNIX Command Idioms - (ひ)メモ

    Re: [twitter:@riywo]'s UNIX Command Idioms ps auxwwwwwww number of "w" depends on my mood in that day :D ps auxwwwwwwwww -L netstat -tna / -una / -tnl / -tnap tar xvf tar zxvf / jxvf / Jxvf are boring trailing slash in rsync rsync -av file [file] HOST:dir/ rsync -av dir/ HOST:dir/ tcpdump -i any -nlx strace -s 100 -fFTttt diff -u /path/to/file <(ssh host cat /path/to/file) see also: http://d.haten

    Re: UNIX Command Idioms - (ひ)メモ
  • Linux KernelのLinked Listの実装が面白い件 - 愛と勇気と缶ビール

    最近、Robert Love先生のを暇な時にダラーと読んでいたりするわけですが、それの中にLinux Kernel内部で使われているLinked Listの実装が書いてあって面白かったので共有。 まず、Linked Listの一個一個のエントリを表すstructを定義します。 struct list_head { struct list_head *next, *prev; }; いやいやいやいや。いかにC力の低い僕でも流石にこれはあきません。騙されませんよ。前後のエントリへのポインタは確かにあるけれども、これにはデータを指すためのポインタがないじゃないの。おじいちゃんまたデータ忘れてきちゃったの?いやあねえ。 おじいちゃんは言った。「それはお前の短見というものじゃ。このLinked Listは以下のコードのようにデータ構造に埋め込んで使うものなんじゃよ。」そしてそれは正しかった。 st

    Linux KernelのLinked Listの実装が面白い件 - 愛と勇気と缶ビール
  • experimentalworks » Blog Archive » Probing PHP with Systemtap on Linux

  • RHEL6/CentOS6では、single-request-reopen を必須にしたい…

    2012-11-02 結論から言えば、とりあえず RHLE6/CentOS6 な人は /etc/resolv.conf に options single-request-reopen を書いておこうという話です(全部小文字ですよ、念のため) なぜか? RHEL5/CentOS5/Ubuntu 10.04なLinuxとかでは、FQDN の解決をするときに DNSキャッシュサーバに AAAA RR の Queryを投げる AAAA RR の Reply を受ける DNSキャッシュサーバに A RR の Queryを投げる A RR の Reply を受ける という挙動でしたが、RHEL6/CentOS6 では DNSキャッシュサーバに A RR の Queryを投げる DNSキャッシュサーバに AAAA RR の Queryを投げる A RR の Reply を受ける AAAA RR の Re

  • xargs -P が激しく便利なのでメモ - おともだちティータイム

    xargs の -P オプションを使うとプロセスを複数起動して処理を並列に行なうことが出来る。 例 例えば、 1 万枚の JPEG 画像を全て 800x800 に収まるように効率良くリサイズしたい。 まず私はこのようなコマンドを考えた。 convert --geometry 800x800 *.jpg しかし zsh に怒られた。 zsh: argument list too long: convert 引数が全て展開されるためこのような事が起きる。 私は xargs を使って処理することを思い付いた。 ls | xargs -I{} convert --geometry 800x800 {} c_{} 処理は行なわれるが非常に遅い。 しかも CPU を全く使っていないことが分かり、私は処理を並列的に行なう事を考えた。 そこで xargs の -P オプションの出番である。 P の後に並列

    xargs -P が激しく便利なのでメモ - おともだちティータイム
    shin1x1
    shin1x1 2012/11/22
    xargs -I と -P が便利
  • Amazon Linuxでupstartを使ってmonitを止めない方法 | DevelopersIO

    止めたくないプロセス サーバを長時間運用していると何かの拍子にプロセスが落ちてしまうことがあります。そんなときのためにプロセスの死活監視をするわけですが、そのプロセス監視が落ちてしまっては困ります。そこで、今回はupstartを使ってアンデットなプロセスの設定を行いたいと思います。Amazon Linuxには最初からupstartの仕組みが入っています。 monitのセットアップ お手軽プロセス管理の仕組みを提供してくれるmonitを例に挙げます。まずはセットアップから $ sudo yum update -y $ sudo yum install monit -y プロセス監視の設定 プロセス監視の設定ファイルの作成です。今回はApacheの設定を書いてみます。ここではスマートに設定ファイルを作成してみたいと思います。ヒアドキュメントを使って設定ファイルの中身を記述します。1行毎にech

  • Amazon EC2でプロセス監視ツールを導入する – monit – | DevelopersIO

    プロセス監視について 出社してサーバーを見たらプロセスが落ちてた!?こんな経験ありませんでしょうか。24時間365日の安定運用が当たり前に求められる現在、サーバー担当者が張り付きで監視をするにはコスト的にもリソース的にも限界があります。そこで、ある程度作業を自動化しようというのが今回の試みです。 monitとは monitは、プロセス/プログラム/ファイル/ディレクトリ/ファイルシステムを管理/監視するためのユーティリティです。monitは、エラーの状況に合わせて自動メンテナンスや修復を行い、意味あるアクションを実行することができます。例えば、実行されない場合、多くのリソースを使用している場合、プロセスが応答せずに停止しない場合等に、プロセスを再起動/開始することができます。他にも、ディレクトリ/ファイル/ファイルシステムにおける、タイムスタンプの変更、チェックサムの変更、サイズ変更等を監

  • インフラエンジニアがSegmentation fault をなんとか治してみる - メモとかそんな感じなやつ

    普段Webサーバを運用していて、めんどくさいトラブルのひとつに「Segmentation fault」があります。 あれー?なんか500エラーがでるなーなんて思ってログを見るとSegmentation faultになってるときは死にたくなります。 そもそもSegmentation faultはメモリ上にあるデータに対して不正が行われたときに起こるもので、 インフラエンジニアにとってはなかなか手がだせないところでもあります。 それでもなんとかして治さないといけないわけなので せめてどのプログラムが悪さしてるかどうかぐらいは調べ上げてみます。 apacheでのログ apache + mod_perl での環境です。 こんな感じでエラーがでます。 #tail error_log [notice] child pid 26028 exit signal Segmentation fault (11

    インフラエンジニアがSegmentation fault をなんとか治してみる - メモとかそんな感じなやつ
  • tarコマンドを負荷制御(bwlimit指定)して実行する方法

    cstream - direct data streams, with bandwidth limiting, FIFO, audio, duplication and extended reporting support. ざっくり言うとデータストリームの制御とかできるよ!っていうコマンドっぽいです。オーディオアプリケーションのデータレートのエミュレーションとかで利用されているそうです。オプションではcstreamコマンドの-tを使うのですが、以下がmanでの内容になります。 -t num    Limit the throughput of the data stream to num bytes/second. Limiting is done at the input side, you can rely on cstream not accepting more than thi

    shin1x1
    shin1x1 2012/08/15
    cstream で帯域制御して tar を実行
  • Koboちゃん解析

    okuoku @okuoku 楽天kobo。起動はU-boot、microSDに起動認証なし、GPLコードはgithub。疑いなく日では最高の電子書籍リーダーだ。

    Koboちゃん解析
    shin1x1
    shin1x1 2012/08/01
    Kobo 欲しくなってきた
  • crontab -e は「絶対に」使ってはいけない - ろば電子が詰まつてゐる

    今までナチュラルにcrontab -eでcron編集をしていたのだけど、実はこれはとてつもなく危ないやり方だった。ということを、今さら知った。 crontab -rの恐怖 crontabコマンドにはrオプション(Remove)があり、これを実行すると何の警告もなく全てが消え失せる。 macbook:~ ozuma$ crontab -l 15 * * * * /home/ozuma/bin/hoge.sh 0 9 1 * * /home/ozuma/bin/piyo.sh > /dev/null 2>&1 */5 * * * * /home/ozuma/bin/fuga.sh > /dev/null 2>&1 macbook:~ ozuma$ crontab -r macbook:~ ozuma$ crontab -l crontab: no crontab for ozuma macbo

    crontab -e は「絶対に」使ってはいけない - ろば電子が詰まつてゐる
    shin1x1
    shin1x1 2012/07/23
    "crontab -e" は "crontab -r" と押し間違える(eとrが隣り合ってる)から危ないという話 / 押し間違えたことは無いけど確かに気をつけた方が良いね。
  • manに「cp -rは使うな」と書いてあった話 - 西尾泰和のはてなダイアリー

    cp -rでシンボリックリンクまで実体としてコピーされて困ったのでMacのmanを読んでいたのだが、そもそもcp -rってオプション一覧に載ってない。あれれ?と思って続きを読んでいたら互換性の章でstrongly discouragedと書かれていた。 COMPATIBILITY Historic versions of the cp utility had a -r option. This implementation supports that option; however, its use is strongly discouraged, as it does not correctly copy special files, symbolic links, or fifo's. 代わりに-Rを使うべきだそうだ。その場合のシンボリックリンクの扱いをどうするかはオプションで指定でき

    manに「cp -rは使うな」と書いてあった話 - 西尾泰和のはてなダイアリー
    shin1x1
    shin1x1 2012/07/19
    普段は cp -a だけど、覚えておこう。
  • ログからは見えてこない高負荷サイトのボトルネック : DSAS開発者の部屋

    ちょうど1年前に「高負荷サイトのボトルネックを見つけるには」という記事を掲載していますが、この手のトラブルシューティングって結構大変で悩ましいですよね。はじめまして、新入りの@pandax381です。 ログからは見えてこないもの 「サイトの応答が遅い」という問題が発生した場合、その原因はどこにあるでしょうか。 Webアプリケーションの処理に時間が掛かっている DBサーバに投げたクエリーの応答が遅い サーバの処理能力を超えている などなど、いくつもの可能性があります。通常、上に挙げているような問題は、アプリケーションやサーバのログを調査することで、原因を突き止めることができます。 一方で、こういったログの調査だけでは、その原因にたどり着くことができなかったり、相当な苦労が伴うケースもあります。 あるサイトのある日の出来事 つい先日のことですが、KLabの運営している某ソーシャルゲームにて、サ

    ログからは見えてこない高負荷サイトのボトルネック : DSAS開発者の部屋
  • うるう秒のあとにMySQLなどのCPU使用率が高騰する件について - SH2の日記

    2012年7月1日のうるう秒のあとに、MySQLJavaなどのCPU使用率が高騰する事象が報告されています。 CPU %user %nice %system %iowait %steal %idle 08時30分01秒 all 0.02 0.00 0.02 0.04 0.00 99.91 08時40分01秒 all 0.02 0.00 0.02 0.08 0.00 99.88 08時50分01秒 all 0.02 0.00 0.02 0.03 0.00 99.92 09時00分01秒 all 0.11 0.00 0.13 0.04 0.00 99.72 09時10分01秒 all 23.02 0.00 29.09 0.11 0.00 47.78 09時20分01秒 all 23.11 0.00 29.08 0.06 0.00 47.75 09時30分01秒 all 22.85 0.00

    うるう秒のあとにMySQLなどのCPU使用率が高騰する件について - SH2の日記
    shin1x1
    shin1x1 2012/07/02
    これが原因かな
  • プロのためのLinuxシステム・10年効く技術を読みました - 256bitの殺人メニュー

    技術評論社さんから『プロのためのLinuxシステム・10年効く技術』を献いただきました!ありがとうございます! プロのための Linuxシステム・10年効く技術 (Software Design plus) 作者: 中井悦司出版社/メーカー: 技術評論社発売日: 2012/06/15メディア: 大型購入: 6人 クリック: 88回この商品を含むブログ (18件) を見る 早速読ませていただいたのですが、かなり面白かったので紹介させて頂きます。 内容 何が面白かったかというと、まずこのの構成でしたw 書き出しますが、 一章 知らないと損するぞ! 押さえておきたいLinux内部構造 二章 マシンがないとは言わせない! 仮想化でここまでできるインフラ環境構築 三章 10番勝負! 自作スクリプトでコマンド活用 四章最後の砦! カーネルソースを読む 五章一歩先を行く! RHEL6新機能の総まと

    プロのためのLinuxシステム・10年効く技術を読みました - 256bitの殺人メニュー
    shin1x1
    shin1x1 2012/06/15
    これは読んでみたい
  • cron で > /dev/null して椅子を投げられないための3つの方法 - 酒日記 はてな支店

    (タイトルは釣りです) いい加減、>/dev/null 2>&1と書くのをやめたらどうか - DQNEO起業日記 この記事のタイトルが twitter で流れてきたのを見て、「そうだ!出力を /dev/null に捨てるなんてとんでもないよね!」と思ってよく読んだら /dev/null に間違いなく捨てる方法だったのでつい crontabに > /dev/null 書いたら椅子投げる 2012-06-13 00:01:17 via YoruFukurou とつぶやいてしまったのですが、では出力を捨てないためにはどうすればいいのか。現時点での個人的ベストプラクティスを書き留めておきます。 デフォルト : メールで送る (MAILTO) せっかく cron daemon がログを捨てないためにわざわざメールで送ってくれるのに、それを > /dev/null で踏みにじるとはひどい。 とはいえ、

    shin1x1
    shin1x1 2012/06/13
    実行プログラム側でログを残す方が多い
  • CentOS6で制限されているプロセス最大数を制限解除する - 256bitの殺人メニュー

    ハマったのでメモ。 Linuxでリソース制限するための仕組みのulimitがありますが、その1項目に「nproc」があります。 これはそのユーザで実行できるプロセス(スレッド)数の制限となります。 これが、CentOS5までは、 $ ulimit -u unlimitedのように無制限だったのですが、CentOS6になって以下のように1024で制限がかかるようになりました。 $ ulimit -u 1024そのため、デーモンとかで高負荷な処理をさせてプロセス(スレッド)が増えると処理が落ちてしまうのです。 悲しいけどこれってデフォルト値なのよね。 設定箇所は? 実際の設定は、[/etc/security/limits.d/90-nproc.conf]でされています。 # cat /etc/security/limits.d/90-nproc.conf # Default limit for

    CentOS6で制限されているプロセス最大数を制限解除する - 256bitの殺人メニュー