タグ

2011年11月22日のブックマーク (7件)

  • @IT:カーネルパラメータの値を調べるには

    などとすれば表示できる。ここで指定されているパラメータ以外は、カーネルのコンパイル時に指定されたパラメータが設定されている。その内容を調べるには、2つの方法がある。 1つは、sysctlコマンドを使う方法だ。rootで以下のコマンドを実行すると、設定されている全パラーメタが表示される。 # sysctl -a sunrpc.tcp_slot_table_entries = 16 sunrpc.udp_slot_table_entries = 16 (省略) fs.inode-state = 59034  24659   0       0       0       0       0 fs.inode-nr = 59034     24659 もう1つは、/proc/sys以下のディレクトリにあるファイルの内容を調べる方法だ。具体的には、パラメータ名の「.」を「/」に置き換えて、先頭に/

  • 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開発者の部屋
    kei2100
    kei2100 2011/11/22
    over commit memory OOM
  • Linux Memory Overcommit - memologue

    かなり昔ですが、或日さんのSolaris8におけるmemory over commitの話題に触発され、Linuxの場合について調べた事があります。正しさは保証しませんが当時のメモを貼っておきます。 memory overcommit? メモリ資源の非常に限られた環境でLinuxを使用しているとよく遭遇する現象なのだが、kernel 2.4までのLinuxでは、"mallocが成功を返したにもかかわらず、その確保した筈のメモリ領域にアクセスすると、SIGKILLによってkernelから強制終了させられてしまう" という現象が 発生することがある。これは、「全プロセスがnew/mallocしたメモリの総量」に対して物理メモリ量が少なすぎる瞬間に於いては常に発生し得る。 何に困っているかといえば、C++でオブジェクトをnewした時に、メモリの枯渇をstd::bad_alloc例外送出という形で

    Linux Memory Overcommit - memologue
  • vm.overcommit_memory = 2 のときに、実際の上限と今現在の値はどこで確認できるか? - (ひ)メモ

    (vm.overcommit_memoryの説明はぐぐってください: google:vm.overcommit_memory) 例えば vm.overcommit_memory = 2 vm.overcommit_ratio = 90なときに、実際の上限と今現在の値はどこで確認できるか? the total virtual address space on the system is limited to (SS + RAM*(r/100)), where SS is the size of the swap space, and RAM is the size of the physical memory, and r is the contents of the file /proc/sys/vm/overcommit_ratio. proc(5): process info pseu

    vm.overcommit_memory = 2 のときに、実際の上限と今現在の値はどこで確認できるか? - (ひ)メモ
    kei2100
    kei2100 2011/11/22
    overcommit memoryの
  • メモリを食いまくるプロセスがメモリ使用量に与える影響をtopで追う

    暴走してどんどんメモリをうスクリプトが OS全体のメモリ使用量(CentOS5 ... カーネルは2.6系になる)の動作にどんな影響を与えるのか ってのを見るために以下のようなテストをしてみました。仕組みはだいたい理解してるけど、細かい数値を追ったことはなかったのでやってみました。 sshでログインして、topを立ち上げる。プロセスを見張る用意をしておく 別のsshをたちあげて、 Perlワンライナーで以下のようなプロセスを走らせる(このプロセスをtopで見張る) # 1秒ごとに5MB単位でメモリをうプロセス # 数値はお好みで perl -e "while(1){ sleep 1; push @h , 1 x 1024 x 1024 x 5 } " ちなみにtopで見張るときは メモリ使用量でソートされるようにして top起動中に shift + o を押して n を押すと 実メモリ

    メモリを食いまくるプロセスがメモリ使用量に与える影響をtopで追う
  • Cassandra運用TIPS(決戦前夜編) - 夜の Discovery

    Cassandraの運用前に設定しておきたいTIPSです。 cassandra.in.shのXms, Xmxを設定する データ量にもよりますが、基的には多ければ多いほど良いと思います。 また、(Cassandra専用サーバーであれば)XmsはXmxと同じ値にしておくのが良いと思います。 bin/cassandra.in.sh JVM_OPTS=" \ -ea \ -Xms16G \ -Xmx16G \ (省略) cassandra.in.shにulimitを設定する 負荷が高くなった際に too many open files エラーが出る場合があるため、JVM_OPTS の前あたりに、ulimit を追加します。(ulimitはデフォルト1024) bin/cassandra.in.sh ulimit -n 32768 JVM_OPTS=" \ -ea \ -Xms16G \ -Xmx

    Cassandra運用TIPS(決戦前夜編) - 夜の Discovery
    kei2100
    kei2100 2011/11/22
    java.io.IOException: error=12, Cannot allocate memory
  •  いますぐコマンドプロンプトを捨てて、Cygwinを使うべき10+の理由 - それマグで!

    Mac大流行なのでCygwinに需要ないかもしれないけど。一年間のCygwin体験をまとめてみた。今年1年で一番使ったツールで感謝してる。 CygwinはWindows環境にそのままLinuxのCUIツールを導入できる。もう「コマンドプロンプト」に拘る必要は薄くなりました。 僕は今年1年の一番の収穫はCygwinを使ったこと。 Cygwinを使うことでターミナルを使いこなせるようになった。そしてMacに移行してもターミナルさえあるから困らないと思えるようになりました。 コマンドプロンプトを捨てるべき理由 ・SSHコマンドでリモートサーバにアクセスしても文字化けする。 ・色・フォントがダサくて使い物にならない。 ・コマンドが少ない。grep したい。findしたい cmd.exeをすててMinttyを使おう。 Cygwinを使うと、minttyというPuttyベースの素晴らしい。ターミナルが

     いますぐコマンドプロンプトを捨てて、Cygwinを使うべき10+の理由 - それマグで!