タグ

linuxに関するuokadaのブックマーク (162)

  • I/Oを多重化するためのシステムコール(select, poll, epoll, kqueue) - $shibayu36->blog;

    サーバ周りの勉強していると、たまにselectとかepollとか言葉が出てきて、理解できてなかったので調べてみた。 I/Oの多重化 例えばサーバ周りの実装を、特に何も考えずにやると、I/Oでブロッキングが発生し、一つのクライアントとしか通信できないということが起こります。これを解決するために fork threads I/Oの多重化 非同期I/O といった方法があります。 この中のI/Oの多重化を実装するためのシステムコールとして、select, poll, epoll, kqueueなどは実装されているようです。 少し調べてみると、次のような記述のような機能をそれぞれが実装するようです。 プログラムで複数のファイルディスクリプタを監視し、 一つ以上のファイルディスクリプタがある種の I/O 操作の 「ready (準備ができた)」状態 (例えば、読み込み可能になった状態) になるまで待つ

    I/Oを多重化するためのシステムコール(select, poll, epoll, kqueue) - $shibayu36->blog;
  • トリビアなmakefile入門

    make/makefileは,大きいプログラムのどの断片が再コンパイルされる必要があるかという事と,それらを再コンパイルする発行コマンドを自動的に決定するユーティリティ/設定ファイルです. コンピュータサイエンスの基的な考え方のひとつに冗長性をなくして効率化する構成を追及するというのがあります. 情報理論(bitの理論),HTMLとブラウザ,高級言語と機械語など,ひとつの仕様(表現)から環境や状況にあわせて実装(記述)をつくりだす構成が好まれます. ひとつのファイルでさまざまなコマンドを制御するmake/makefileを制することはコンピュータサイエンスを制することになります. makeのあれこれ もっとも単純な例 Makefile は以下のようなルールからなる.

  • リアルタイムミラーリングツール導入(lsyncd+rsyncd) - CentOSで自宅サーバー構築

    lsyncdを使用してマシン間でリアルタイムにディレクトリのミラーリングを行う。 lsyncdはLinuxカーネルのinotify機能を利用して、ファイルの更新時にミラー先のrsyncサーバーへrsyncを実行することにより、リアルタイムにディレクトリのミラーリングを行う。 ここでは、例として/rootディレクトリをミラー先の/tmp/rootディレクトリへミラーリングする。 [root@to ~]# mkdir -p /tmp/root ← ミラー先ディレクトリ作成 [root@to ~]# chown nobody:nobody /tmp/root/ ← ミラー先ディレクトリ所有者をnobodyに変更 [root@to ~]# vi /etc/rsyncd.conf ← rsyncサーバー設定ファイル作成 [root] ← 任意のモジュール名(ミラー元から接続時の名前) path =

  • Linuxのオープン可能ファイル数を増やす - 銀の鍵

    知恵は自分の家を立て、その七つの柱を立て、 獣をほふり、酒を混ぜ合わせて、ふるまいを備え、 はしためをつかわして、町の高い所で呼ばわり言わせた、 「思慮なき者よ、ここに来たれ」と。また、知恵のない者に言う、 「来て、わたしのパンをべ、わたしの混ぜ合わせた酒を飲み、 思慮のないわざを捨てて命を得、悟りの道を歩め」と。 箴言 9-1,6

  • メールシステムのおはなし #Mailerstudy

    メール談義ができるようになるための基礎知識のために 【Ust録画】メールシステム 基編 http://www.ustream.tv/recorded/17612350 【Ust録画】メールシステム 現実編 http://www.ustream.tv/recorded/17613018Read less

    メールシステムのおはなし #Mailerstudy
    uokada
    uokada 2011/10/03
    メールシステム
  • いやなブログ: Linux の共有ライブラリを作るとき PIC でコンパイルするのはなぜか

    Linux の共有ライブラリを作るとき PIC でコンパイルするのはなぜか 通常、Linux の共有ライブラリを作るときは各 .c ファイルを PIC (Position Independent Code) となるようコンパイルします。しかし、実は PIC でコンパイルしなくても共有ライブラリは作れます。それでは PIC にする意味はあるのでしょうか。 さっそく実験してみます。 int func () { printf(""); printf(""); printf(""); } PIC でコンパイルするには gcc に -fpic または -fPIC を渡します。-fpic の方が小さく高速なコードを生成する可能性がありますが、プロセッサによっては -fpic で生成できる GOT (Global Offset Table) のサイズに制限があります。一方、-fPIC はどのプロセッサで

  • コンピューター:C言語講座:mmapについて

    コンピューター:C言語講座:mmapについて 概要 mmapはファイルをメモリにマッピングするものです。わかりやすく言うと、UNIXのOSが行なっているページングやスワッピングを自プロセスで行なうようなものです。 これを使うメリットとしては、メモリ確保サイズが確保開始時に決定できない場合、簡単にはmalloc()で適当な量を確保し、足りなければrealloc()を使用して拡大することになりますが、realloc()を繰り返すとメモリ領域中に空きが出来やすく、大規模なシステムでは実際使用しているメモリより空き空間の方が数倍大きくなってしまい、メモリ不足で実行不可能になる場合があります。mmapを使用すれば、別々に拡大していくような管理が可能なので、また、スワップスペースとは別の位置に置くことにより、多数の動的メモリを必要とする場合に安全に動作することが可能になる場合があります。ただし、基

  • mmap (メモリマップトファイル) : kei@sodan

    Linux/Unixのメモリ周りで大活躍のシステムコール、mmapの解説です。 スライド(pdf), (pptx), (ppt) 上記スライド及びこのページの内容の大部分は、(僕が受けた) 田浦先生 の授業オペレーティングシステムの6回目のスライドと同じです。 あと、malloc中のmmap()まわりを調べてくれてありがとう>研究室のkennyくん ファイルとメモリ mmap()のAPI・使い方 (mallocの中身の話題) mmap()の実装

  • 知っていると便利な gcc のオプション

    back GNU gcc を使う際に知っていると便利なオプションを挙げておきます。 注意: これが全部ではありません。gcc には、ほかにも プロセッサ依存の細かいオプションが山のようにありますが、それらは ふつうあまり利用しないので省略しました。 一般的なオプション -c, -o, -I, -g, -O, -L, -l 省略。それくらい知ってること。ちなみに -L と -l は ld へのオプションであり、順番が重要である。 -pipe 各ステージ間で情報のやりとりをするのに temporary file を使わず、 pipe を使うようにする。このオプションが Makefile などに 含まれているときは、たいてい除いたほうがよい。なぜなら、 多くのシステムでは、アセンブラ側がパイプに対応してないから。 言語仕様に関するオプション -ansi 厳格な ANSI 仕様でコンパイルする。こ

  • コンパイラ(gccコマンド)の使い方

    gccはジーシーシーと読む.GNUが作成し,UNIX,Windowsなどで動作するフリー のコンパイラである. ここでは,C言語をコンパイルする際のgccの利用方法を説明するが,C++の場合 にはgccというところをg++に変更すればほぼそのまま利用可能である. イタリック体は,実行時には適当に変えること.ここでは,サンプルとし て,test.cをコンパイルしてtest.o(オブジェクトファイル)または test(実行ファイル)を作成する場合についての説明をする. 主なオプション一覧 -g   (コンパイル,リンク時) コンパイル,リンク時にDEBUG情報を付加する.dbx,gdbなどのデバッガ を使用するときに必要. -c   (コンパイル時) コンパイルのみ行う(オブジェクトファイルを生成する). ex: gcc -c test.c   → test.oを生成 -o test.o  (

  • LinuxはローカルにDNSキャッシュを持たないことを初めて知った - 元RX-7乗りの適当な日々

    先日、とあるLinuxマシンをセットアップした時に、"apt-get upgrade"で最新のモジュールをダウンロード・更新していたところ、途中でモジュールがダウンロードできなくなってしまった。 調べてみると、通信はできるけど名前解決が出来ていないことが分かった。 で、しばらくすると名前解決が行えるようになり、ダウンロードが再開された。 Windowsでは暗黙で,Mac OS XではlookupdがDNS解決の結果をキャッシュしていますが,Linuxではキャッシュを行わず,都度DNSサーバへ問い合わせを行ってしまいます。 第20回 いろいろなキャッシュ:dnsmasq, cache proxy:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社 とのことなので、どうやら、小さいサイズ(数KB〜数十KB)のファイルを連続してダウンロードしていることで、DNSサーバに軽

    LinuxはローカルにDNSキャッシュを持たないことを初めて知った - 元RX-7乗りの適当な日々
  • http://www.machu.jp/posts/20110527/p01/

    http://www.machu.jp/posts/20110527/p01/
  • �Linux/DB Tuning (DevSumi2010, Japanese)

    1. 高性能・安定運用のための Linux/DB システム構築 / 運用技術 松信 嘉範 (MATSUNOBU Yoshinori) サン・マイクロシステムズ株式会社 プリンシパル MySQL コンサルタント 2. プロフィール 2006 年 9 月から MySQL->Sun(-> オラクル ) で MySQL コンサルタントとして勤務 主な著書 Linux-DB システム構築 / 運用入門 現場で使える MySQL Java データアクセス実践講座 Twitter: matsunobu Blog: http://opendatabaselife.blogspot.com * 今回の資料は公開します * MySQL 用語があちこちに出ますが、 経験の無い方にも分かるように配慮していくつもりです 3. 安定稼働と高性能を支える要素 アプリケーション層に関する技術 テーブル設計、インデックス設

    �Linux/DB Tuning (DevSumi2010, Japanese)
  • Linux Wiki

    このWikiは今年度中で閉じる予定です。何らかの形のアーカイブは残します -- 奥村? 2021-08-10 (火) 20:04:42 PHPが使えないブラウザがあります。 -- morinet? 2021-08-10 (火) 18:07:38 あ -- あ? 2021-08-10 (火) 18:05:39 Vine Linux 6 がリリースされています。http://vinelinux.org/ -- detch 2012-07-27 (金) 13:01:18 気がつけば Vine Linux 5 がリリースされています。http://vinelinux.org/whatsnew.html -- よっけ 2009-09-01 (火) 22:33:58 2007-12-25 に Vine Linux 4.2 がリリースされています。 -- よっけ 2008-01-01 (火) 19:10

  • Linux Certif - Man sudoers(5)

  • Linux/kernelチューニング - Nobuhito Mori

    メモリーの最低空き容量を大きくする † vm.min_free_kbytes デフォルト vm.min_free_kbytes = ? 設定例 vm.min_free_kbytes = 11494 ↑ 空きページがキャッシュ等に占有されることを防ぐ † lower_zone_protection デフォルト lower_zone_protection=0 設定例 lower_zone_protection=100 ↑

  • kernel:Memory Manage(2) min_free_kbytes - Simple is Beautiful

    Writeback処理の完了=Page Cacheの解放、ではない Writeback後、Page回収処理により実際にメモリ空間が解放される 頻繁にPage回収処理を実行することにより、無駄なCache Memoryを削減し、メモリ空間の確保(=効率的なメモリの使用)ができる 空きメモリ容量の下限値は"min_free_kbytes"パラメータで設定される デフォルトの"min_free_kbytes"値は(4×√マシンの総メモリ量)である たとえば、1GBのメモリを搭載したマシンでは、4×√1024で、4096kbytesとなる。この場合、空きメモり容量がこの値を下回った場合、ページ回収処理が実行される。この値をより大きくすることにより、より早い段階でページ回収処理が実行されるようになる 現在の"min_free_kbytes"値を確認する [root@tkcent1 ~]# cat /

    kernel:Memory Manage(2) min_free_kbytes - Simple is Beautiful
  • naoyaのはてなダイアリー - 負荷とは何か

    調べごとをしたので blog に書いて理解を深めようのコーナーです。長文です。 Linux でシステム負荷を見る場合にお世話になるのが top や sar (sysstat パッケージに同梱されてるコマンド) などのツールです。 top ではシステム統計のスナップショットを見ることができます。今システムがどういう状態かなーというときは top が便利。 top - 08:16:54 up 3 days, 14:43, 6 users, load average: 0.18, 0.07, 0.03 Tasks: 43 total, 2 running, 41 sleeping, 0 stopped, 0 zombie Cpu(s): 18.2% us, 0.0% sy, 0.0% ni, 81.8% id, 0.0% wa, 0.0% hi, 0.0% si一方の sar では10分ごとのシ

    naoyaのはてなダイアリー - 負荷とは何か
  • Linux のメモリー管理(メモリ―が足りない?,メモリーリークの検出-防止)(Kodama's tips page)

    サ−バ等に使っているPC のメモリが十分かどうか気になる事は多いと思う. 調べ出すと フリーメモリーの不足や SWAP にメモリーがはみだしている様子など 心配な事がいろいろでて来る. PC の動作が遅くなる原因は様々な要因が絡み合っているので, 表面に現れた症状だけでは効果的な対策が分からない事もある. 以下では, メモリ−関連にしぼって解説する. メモリの状況を調べる メモリ−は十分なはずなのに 余裕が無い? どのプロセスがメモリを消費しているのか? メモリーのリークを検出する方法? 防止する方法? メモリ−は十分なはずなのに SWAP を使ってる? じゃ, 当のメモリ−不足はどうしたら分かるの? メモリーと SWAP 領域はどのくらい確保すると良いのか メモリの状況を調べる メモリの利用状況を調べる方法は, free, top, ps, vmstat, /proc/meminfo

  • naoyaのはてなダイアリー - Linuxのページキャッシュ

    世間では PHP が、Perl が、と盛り上がっているようですが空気を読まずまたカーネルの話です。今回はページキャッシュについて。 /dev/shm に参照系DBを持っていくと I/O 負荷が激減した件(当たり前だけど) - drk7jp で、ディスク上にあったファイルを /dev/shm (tmpfs) に移したら I/O 待ちがなくなって負荷がさがった、ということなんですがおそらくこれは tmpfs に置く必要はないかなと思います。Linux (に限らず他の OS もそうですが) にはディスクの内容を一度読んだらそれはカーネルがキャッシュして、二度目以降はメモリから読む機構 = ページキャッシュがあります。tmpfs にデータを載せることができた、ということは物理メモリの容量に収まるだけのデータサイズかと思うので、放っておけば該当のファイルの内容すべてがメモリ上にキャッシュされて io

    naoyaのはてなダイアリー - Linuxのページキャッシュ
    uokada
    uokada 2010/12/16
    Linux のページキャッシュ