タグ

kernelに関するsaronpasuのブックマーク (6)

  • 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のはてなダイアリー - 負荷とは何か
  • x86 Linux のメモリモデル、プロセス空間切り替え、カーネルスタック - naoyaのはてなダイアリー

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

    x86 Linux のメモリモデル、プロセス空間切り替え、カーネルスタック - naoyaのはてなダイアリー
  • DBサーバ向けLinuxチューニングを考える 〜 メモリオーバーコミット編 : DSAS開発者の部屋

    Cでプログラムを書いていて大量のメモリを確保したくなったとき、大抵は mallocを使うと思いますが、その際には戻り値がNULLかどうかを判断してエラー処理に飛ばすと思います。しかし、Linux のメモリ管理サブシステムには「メモリ・オーバーコミット」という機構があり、実装されているメモリ以上の領域を確保できてしまいます。 #include <stdio.h> #include <stdlib.h> int main() { int i; char *p; for(i=0;i<65536;i++){ p = (char *)malloc(65536); if(0 == (long)p){ break; } } printf("SIZE=%dMB\n",i*65536/1024/1024); return(0); } swapoff したメモリ 1G のマシンでこれを実行するとこんな感じにな

    DBサーバ向けLinuxチューニングを考える 〜 メモリオーバーコミット編 : DSAS開発者の部屋
  • Linux のプロセスが Copy on Write で共有しているメモリのサイズを調べる

    Linux は fork で子プロセスを作成した場合、親の仮想メモリ空間の内容を子へコピーする必要があります。しかしまともに全空間をコピーしていたのでは fork のコストが高くなってしまいますし、子が親と同じようなプロセスとして動作し続ける場合は、内容の重複したページが多数できてしまい、効率がよくありません。 そこで、Linux の仮想メモリは、メモリ空間を舐めてコピーするのではなく、はじめは親子でメモリ領域を共有しておいて、書き込みがあった時点で、その書き込みのあったページだけを親子で個別に持つという仕組みでこの問題を回避します。Copy-On-Write (CoW) と呼ばれる戦略です。共有メモリページは、親子それぞれの仮想メモリ空間を同一の物理メモリにマッピングすることで実現されます。より詳しくは コピーオンライト - Wikipedia などを参照してください。 この CoW に

    Linux のプロセスが Copy on Write で共有しているメモリのサイズを調べる
  • @IT:/procによるLinuxチューニング [前編](1/2)

    /procによるLinuxチューニング [前編] ~ /procで理解するOSの状態 ~ Linuxの状態確認や挙動の変更で重要な役割を担うのが/procファイルシステムである。前編では/procの概念や/procを利用したOSの状態確認方法を理解していただきたい。(編集局) 遠田 耕平 2002/12/10 稿では、/procファイルシステムによるカーネルチューニングを紹介します。カーネル2.4.19をベースに説明していきますが、カーネルのバージョンによって内容が異なる場合があります。また、ディストリビュータが独自の拡張を施しているものもあります。従って、これから説明する内容がすべて当てはまるとは限りません(端的にいうと説明の対象が存在しなかったり、説明されていない機能が追加されていることがあります)。 /procファイルシステムとは /procは、Linuxシステムの/(ルート)に「

  • 大規模サイトのLinuxカーネルチューニング

    大規模サイトの為のLinuxカーネルチューニング (Linux kernel tuning for large site) 文責: もりかわひろかず * ** 大規模なサービスを行うサーバOSとしておこなうべき チューニングの定石について記述します kernelのバージョンは2.4.31を対象にしています (もう2.6でしょう) (2.4版のメンテやめます) OSのデフォルト設定は一般的な規模を想定しています それを逸脱するような大規模な用途(大規模なwebサーバ、 web cache(squid)サーバ、バーチャルドメインサーバ[仮想サーバ])に使用するには、 やはりそれなりのチューニングが必要になってきます 以下で、そのチューニングの定石を列挙します (なぜチューニングが必要なのか) (個々の値については各サイトで調節してください) (以下のパラメータは I

  • 1