Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

unixに関するbull2のブックマーク (18)

  • パイプ経由のログ出力はCPUを浪費する

    最強の看板を下ろしたミラーサーバftp.jaist.ac.jpの管理者の一人が、 このサーバにまつわるよしなしごとを語ります。 English versions of some posts on another blog. Apache HTTP Serverでログをパイプ経由でプログラムに出力すると、リクエストを処理するたびにログを処理するプログラムへのコンテキストスイッチが起こります。そのためアクセスが増えたときにCPUをかなり浪費します。UltraSPARC T1は32個のコンテキストを保持できて、1クロックでコンテキストスイッチできるので問題ないと思っていました。しかし、CPUの使用率が100%に達して、さらに負荷が掛かる状況になると違いました。 ftp.jaist.ac.jpにはパイプ経由のログ出力が3つあります。エラーログとアクセスログのrotatelogsへの出力と、以前

  • 実行中のアプリケーションを外から観察するコマンド。 - こせきの技術日記

    strace システムコールをトレース。カーネルと何を話しているか。 strace -p PID でプロセスにアタッチ。実行中のプロセスをトレース。 straceを使ったデバッグ - SourceForge.JP Magazine : オープンソースの話題満載 Linuxカーネルの作り出す世界 − @IT自分戦略研究所 - ふつうのLinuxプログラミング 青木峰郎 システムコールとライブラリ関数 − @IT自分戦略研究所 システムコール・ライブラリルーチン - UNIX の部屋 ltrace 共有ライブラリの呼び出しをトレース。*.soと何を話しているか。 ltrace -p PID でプロセスにアタッチ。実行中のプロセスをトレース。 ltrace で共有ライブラリの関数呼び出しをトレースする - bkブログ 404 - エラー: 404 - Linux JF ƒ‰ƒCƒuƒ‰ƒŠ‚ÌŠ

    bull2
    bull2 2009/06/29
    常識かと思ってたのだが
  • GNU tar 1.22リリース gzipより圧縮効率が大きく向上した「xz」をサポート

    GNUプロジェクトは3月5日、GNU tar 1.22をリリースした。このバージョンでは、新たに「xz圧縮」をサポートする“--xz”オプションが追加された。この見慣れない圧縮形式は、.lzmaを置き換えるものとして、LZMA UtilsをリリースしてきたTukaaniプロジェクトが公開したフォーマット。拡張子は.xzだ。 GNUプロジェクトは3月5日、GNU tar 1.22をリリースした。tarは、複数のファイルを1つにまとめるUNIX標準のファイルアーカイブ。GNU tarバージョン1.22では、新たに「xz圧縮」をサポートする“--xz”オプションが追加された(“-J”にショートカットがアサインされている)。 この見慣れない「xz」という圧縮形式は、これまでLZMA UtilsをリリースしてきたTukaaniプロジェクトが1月29日に正式公開したフォーマットで、拡張子は.xz。既存

    GNU tar 1.22リリース gzipより圧縮効率が大きく向上した「xz」をサポート
    bull2
    bull2 2009/03/09
    kernel.orgでgz/bz2/xzの3つが提供されるのかな?
  • Linuxに勝てなかったPlan 9 - @IT

    2002年頃、とある雑誌でPlan 9の記事を6ページほど作ったことがある。冷静に考えると、とても流行するようには思えなかったのだが、私にはPlan 9はまぶしく輝いて見えた。それは紛れもなく未来のUNIXだったし、日々コンピュータやネットワークを利用する環境として、ぜひとも使いたいと思えるような機能が多くあった。 「Plan 9」(プラン・ナイン)はUNIXが生まれたベル研究所で、次世代UNIXとして開発されていた分散OSだ。UNIXやC言語を生み出したケン・トンプソン、デニス・リッチー、ロブ・パイクらのチームが、当時UNIXが抱えていた限界を打ち破るために、ネットワークやGUIを最初からUNIXの設計思想に基づいて取り入れた先進的なOSだった。それは、未来のUNIXとなるはずだった。 UNIXの大きな特徴として、デバイスをファイルにマッピングして抽象化するというものがある。各I/Oポー

    bull2
    bull2 2009/02/10
    dumpfsを全OSの標準にしてくれ
  • 偽偽夜食日記: daemon起動時の二重forkの理由 (2005-03-16 )

    カテゴリ: UNIX daemonプロセスを起動する際に2回forkするというのは、もはやFAQの領域にあることだが、なぜ2回forkする必要があるのか、それぞれのforkにどういう効果があるのかということまで書いてあるものは少ない。私も今まで疑問に思いつつ放置していたが、ついにそのことについて書かれているものが見つかった。 Unix Programming Frequently Asked Questions 日語訳 - 1 プロセス制御 1.7 プログラムをデーモンとして動かすにはどうすればいいですか? これをきちんと理解するには、セッションと制御端末についてより詳しく知る必要がある。セッションとは、ユーザーがとある端末からログインして生成したプロセスの集合である。ユーザーは端末のキー操作によりプロセスの一時停止や終了などの制御を行うことができるが、セッションはこの制御の影響範囲を

    bull2
    bull2 2008/08/22
    二回forkの理由
  • GNU tarがバージョン1.20にアップデート - 5種の新オプション | エンタープライズ | マイコミジャーナル

    GNUプロジェクトは14日 (米国時間)、コマンドラインのアーカイバ「GNU tar 1.20」をリリースした。GNU GPLv3が適用されるソースコードは、UNIX系OSなどPOSIX互換のシステムでコンパイル可能。 今回のリリースでは、新しいオプションとして「--auto-compress」 (省略形:-a) を追加。--create (省略形:-c) オプションと併用することで、引数に与えたファイルの拡張子から圧縮アルゴリズムを推定できるようになった。同じく新設された「--lzma」オプションは、7-Zipなどに採用されているLempel-Ziv-Markov chain-Algorithm (LZMA) アルゴリズムに対応する。ほかにも、ハードリンクが張られたファイルを実ファイルそのものとして格納する「--hard-dereference」など、計5種のオプションが追加されている。

  • 初めてシェルスクリプトを書くときに知っておきたいこと - Unix的なアレ

    他の言語をを書き慣れてから、シェルスクリプトを書こうとするとしょうもない部分でハマったりすることがあります。「簡単な処理だからシェルスクリプトで書くか」と思っても無駄に時間がかかってしまっては仕方ないですよね。 今回は初めてシェルスクリプトを書くときに、ハマりそうな点について説明をしたいと思います。 実行権限をつける 単純にファイルを生成しても下記の用に実行しようとしても実行はできません。 # touch test # ./test sh: ./test: Permission denied # touch foo # ./foo sh: ./foo: Permission denied これはファイルに実行権限がついていないため、起きる現象です。 chmodコマンドを使って実行権限をつけてやりましょう。 # chmod +x test # ./test # chmod +x foo #

    初めてシェルスクリプトを書くときに知っておきたいこと - Unix的なアレ
    bull2
    bull2 2008/02/25
    ロックファイルがatomicに作れない…と指摘しようと思ったら、案の定コメントで既に指摘されていた(ぉ
  • Unix とライフハックの共通点って?

    Applying Unix Philosophy to Personal Productivity | Lifehacker 研究では Fortran や作図ツールを使う関係で Unix 系の OS を多用しています。最初に触ったのが Solaris や FreeBSD で、Mac に移行したのも Mac OS X の下地が Unix だからでした。というわけで Lifehacker で「Unix の哲学を仕事術に応用すると」という記事に引き込まれてしまいました。 原文には全部で7つありましたが、最も「なるほど」と思ったのが以下の3つでした。 簡単なツールをきれいに連携させる: Unix コマンドには cat や ls などのように一つの事を非常に優秀に行なうコマンドがあり、それをパイプや awk などといった機能・コマンド、あるいはスクリプトがつないでいます。一時期 Hipster PD

    Unix とライフハックの共通点って?
    bull2
    bull2 2008/02/04
  • screenを初めて使うためのチュートリアル - Unix的なアレ

    screenというものすごく便利なアプリケーションがあります。上記写真のように、1つのターミナル内で、仮想的に複数の端末を起動させることができるものです。 ただ慣れるまでは少々使い方がとっつきづらいという話も聞きますので、今回はscreenを基的に使えるまでのチュートリアルを紹介したいと思います。 どんなことができるの? 複数の仮想端末をあげるとどういったメリットがあるのでしょうか?実際に自分はscreenを使うまではターミナルを複数起動させ、Desktop上はターミナルだらけになっていました。 実際はそれでも問題は起きないのですが、個人的にはローカルPC側では極力起動しておくアプリケーションを少なくしたいと思っているため、screenを使うようになりました。 ただそれだけであればWindowsならPoderosa,MacならiTerm,GnomeならGnome端末があるのですが、scr

    screenを初めて使うためのチュートリアル - Unix的なアレ
  • シェルのリダイレクトを「こわいものなし」というくらい完全に理解しよう - 檜山正幸のキマイラ飼育記 (はてなBlog)

    Java BlockingQueueで遊ぶ:パイプラインごっこ」でパイプラインの話をしたので、来の、つまりUnixのパイプやリダイレクトを少し調べてみました。 たまに話題となる some-command >file 2>&1 と some-command 2>&1 >fileの挙動の違いについて、「シェルはコマンドラインリダイレクトの指定を右から左に解釈実行する」なんて説明が見つかりました。んなバカな! パージングは左から右にするものですよ。パーズツリーを逆順にたどることはできるけど、そんなことする必然性はなんにもないよ。 次の記事を読むと、「右から左」なんて事情じゃないことが分かるでしょう。 UNIXの部屋 検索: リダイレクト シェルのリダイレクトにまつわる失敗 さてここでは、複雑なリダイレクト処理も完全に理解できる処方箋を示しましょう。例えば、次のコマンドラインが何をするか分かる

    シェルのリダイレクトを「こわいものなし」というくらい完全に理解しよう - 檜山正幸のキマイラ飼育記 (はてなBlog)
    bull2
    bull2 2007/12/22
    まぁこんなに複雑な解析が必要なコマンドラインにお目にかかることなんて滅多に無いんだけどね
  • Unixfile_structures.gif (GIF 画像, 1546x2212 px) - 表示倍率 (35%)

    bull2
    bull2 2007/10/23
  • CodeZine:signalについて(後篇)(signal, Linux, Unix, シグナル)

    はじめに シグナルについての解説最終回です。今回はシグナルを扱う上での注意点や、よりよい実装方法の提案、シグナルの未来等について説明します。過去の記事signalについて(前篇)signalについて(中篇) 5. 実装上の注意点 前回まで説明してきたとおり、シグナルは気軽に使うことができる便利なプロセス間通信です。しかしシグナルには、やってはいけないことや気をつけるべき点が多く存在します。以下、代表的な注意点を挙げます。5.1 最適化問題 volatileはそれほど使われない宣言修飾子ですが、これは最適化を制御する修飾子です。なぜこの修飾子がシグナルと関係あるのかについてですが、先にソースコードを示します。 /* 1. gcc -g -W -Wall signal_test_volatile.c -o signal_test_volatile 2. gcc -g -W -Wall sign

  • Amazon.co.jp UNIX MAGAZINE Classic with DVD(DVD: ,: M

    Amazon.co.jp UNIX MAGAZINE Classic with DVD(DVD: ,: M
    bull2
    bull2 2007/10/04
    欲しいけど高い&古いネタも多そうだし、読む意味があるかなぁ
  • 【コラム】漢のzsh (10) もってけ泥棒! コピペで始めるzsh | エンタープライズ | マイコミジャーナル

    こいつを~/.zshrcへコピーだ これまで、zshの基となる設定を説明してきた。設定ファイルにエスケープコードを含めておいたためか「そのままコピー&ペーストしたんだけど使えねぇよ!!」という憂き目に遭った読者がいらっしゃったようだ。zshを学び始めるにあたって、この経験はまずい。「ネットで見つけた設定ファイルをコピペしたら、ヒャッホイ!動いたぜ!!」というくらいじゃないとモチベーションは上がらない。 そのようなわけで、今回はそのままコピー&ペーストすれば使える~/.zshrcファイルについて述べておく。zshを始めたばかりのユーザ、またはこれから始めようというユーザは、こいつをコピー&ペースしてとりあえずzshの底力を満喫してほしい。なお、zsherが多いと想定されるLinux、FreeBSD、Mac OS X上で動作するように調整しておいた。 以前設定ファイルをまとめた後に公開したコ

  • なぜ apache module を更新すると Segmentation fault するのか : DSAS開発者の部屋

    今回は、apache module について気になることがあったので紹介します。 先日 バージョンアップするために apache module を更新した直後 apache が Segmentation fault してしまうという問題に気が付きました。 Segmentation fault した後に apache を再起動すれば、新しいモジュールが反映されて正常に動作するものの何故この様なことが起こるのか不思議に思い原因を調査してみました。 % curl http://localhost/ curl: (52) Empty reply from server レスポンスが空です。apache のログには [Thr Mar 29 17:52:01 2007] [notice] child pid 20001 exit signal Segmentation fault (11) この様なエ

    なぜ apache module を更新すると Segmentation fault するのか : DSAS開発者の部屋
    bull2
    bull2 2007/03/30
    上書きすればSEGVる。昔SolarisでSEGVったことがあったなぁ
  • prefork サーバーと thundering herd 問題 - naoyaのはてなダイアリー

    Catalyst を POE で動かす Engine の Catalyst::Engine::HTTP::POE という実装が CPAN にあります。"Single-threaded multi-tasking Catalyst engine " だそうです。"Single-threaded" と言いつつも実装を覗いてみると環境変数 CATALYST_POE_MAX_PROC を 1 よりも大きく設定することで prefork する実装になってます。POEシングルスレッドではアプリケーション内で発生するブロックを避けることが難しいのでそのための実装じゃないかなと思います。 ところでこの Catalyst POE エンジン、prefork の実装はどのように行っているかというと POE から prefork と名の付いたイベントが発生するとおもむろに子プロセスを生成する、というのもの。複数の

    prefork サーバーと thundering herd 問題 - naoyaのはてなダイアリー
  • ファイル記述子をUnixドメインソケット経由で渡す - bkブログ

    ファイル記述子をUnixドメインソケット経由で渡す Unix 系の多くの OSには、ファイル記述子を別のプロセスに Unix ドメインソケット経由で渡す機能があります。一見、何のために使うのかよくわからない機能ですが、 glibc の nscd はこれをうまく使っています。 nscd (name service caching daemon) は glibc 内で行われる名前関連の問い合わせをキャッシュするサーバです。NIS や LDAP などを用いてネットワークベースでユーザ管理を行っている場合、 getpwuid() などの関数はユーザ名の取得にネットワークアクセスを必要としますが、 nscd を立ち上げておけば、二度目からの同じ問い合わせはキャッシュから得られます。 nscd を立ち上げている GNU/Linux システムでは、キャッシュファイルが /var/db/nscd 以下に作

  • [from rtk2106] Open Tech Press | screenで遠隔教育

    先日、ちょっとした遠隔教育をする必要があった。Linux上でソフトウェアをビルドするデモを見せて欲しいと同僚が言ってきたのだ。問題は一つ。私が東海岸、彼が西海岸にいたことだ。さて、ビルドとインストールの方法をどうやって彼に見せようか。いくつかの候補を検討した結果、私たちはGNU Screenを使うことにした。 私たちが最初に考えた候補は、標準Unixユーティリティのscriptを使ってログをとるという案だ。しかしscriptはいくつかの問題点を抱えている。例えば、結果の出力がすさまじい(scriptは、キャリッジリターンや訂正を含めた何から何までを保存する)という、無視しがたい問題点がある。加えて、scriptではインタラクティブ性が完全になくなる。同僚が質問したかったり、説明を必要としたら、後から電子メールでのやり取りが必要になっただろう。これでは彼にとっても私にとってもイライラが募る。

    [from rtk2106] Open Tech Press | screenで遠隔教育
    bull2
    bull2 2006/09/11
    screenでmultisession/multiuser おもろい
  • 1