タグ

Linuxとmemoryに関するtyruのブックマーク (16)

  • いますぐ実践! Linuxシステム管理

    「いますぐ実践! Linux システム管理」はこちらです。 メルマガの解除、バックナンバーなども、以下からどうぞ。 https://www.usupi.org/sysad/ (まぐまぐ ID:149633) その他、作者に関するページは、概ね以下にございます。 https://www.usupi.org/kuri/ (まぐまぐ ID:126454) http://usupi.seesaa.net/ (栗日記ブログ) https://twitter.com/kuriking/ (twitter) https://facebook.com/kuriking3 (facebook) https://jp.pinterest.com/kuriking/pinterest) https://www.instagram.com/kuri_king_/ (instagram) [バックナンバーのトップへ

  • OSが認識するメモリ容量を制限したいとき at nkjmkzk.net

    Oracle, Open Source, Private特にパフォーマンステストをやってるといろいろとOSの環境を変えて結果を見比べたくなるときがあります。その中で「メモリ容量を変えたらどうなるか?」というときがしばしばあります。パワープレイでこれを実現するには、よっこらしょ、とラックからサーバを引き出し、ケースをパカッと開けてメモリを引っこ抜くという技が最初に思いつきます。しかしデュアルチャネル構成の場合短絡的にそんなことをしちゃうとサーバが起動しなくなってしまう可能性がありますし、そもそも現場まで言って作業するというのが原始的です。 簡単な方法は、カーネルの起動パラメータ「mem」でOS(カーネル)が認識するメモリ容量を指定してあげるやり方です。これは/boot/grub/grub.confを直接編集して静的に設定してもいいですし、起動時にgrubメニューで都度設定してもOKです。 例

  • /proc/meminfoを考える - めもめも

    通りすがりの貴方・・・・ /proc/meminfoのあっちの値とこっちの値を足したら、なんでそっちの値と同じにならないの・・・・ と悩んだことありますよね? /proc/meminfoは、カーネルが内部的に管理している枠組みでのメモリ情報をそのまま出しているので、残念ながらユーザ視点で知りたいメモリ情報とは一致しません。 とはいえ、変な解釈をして無意味に悩まないために、それぞれの値の意味合いと項目間の関係を知っておくのは有意義です。私の理解の範囲で、それらの関係をまとめていきます。 #私の理解も完璧ではないので、間違いあればやさしくご指摘お願いします。 参考資料 http://mkosaki.blog46.fc2.com/blog-entry-1007.html 2011/09/07 追記: tmpfsがSwapCachedに含まれるのは幻想でした。tmpfs=Shmemに修正しました。

    /proc/meminfoを考える - めもめも
  • Find out how much data is waiting to be written to disk Using grep

    tyru
    tyru 2011/08/24
    HDDに書き込まれずにバッファに溜まっているデータの量が見れる >grep ^Dirty /proc/meminfo | ^はzshでextended_glob扱いなので自分の環境ではクオートする必要あるけど
  • LinuxやFreeBSDでCPUやメモリの情報を調べる - hamacoの日記

    LinuxとFreeBSDでCPU情報とかの取得を良く忘れてしまうのでメモ。特にFreeBSDは/var/log/dmesg.todayでしか見れないと昔思っていたので、しょっちゅう忘れてしまう。 Linuxの場合 /procディレクトリの下にあるファイルに一通り入っている。CPUの場合はcpuinfoを見ればよい % cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 4 model name : Intel(R) Pentium(R) 4 CPU 3.00GHz stepping : 3 cpu MHz : 3000.422 cache size : 2048 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1 f

    LinuxやFreeBSDでCPUやメモリの情報を調べる - hamacoの日記
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • バッファページにブロックバッファをキャッシュするのはファイルシステムではない? - ablog

    バッファページ*1もページキャッシュ*2もファイルシステムのキャッシュだと思っていましたが、どうやら勘違いしていたようです。 ブロックデバイスのデバイスファイル(/dev/sda1など)に直接アクセスした場合は、メモリ上にキャッシュされないと思っていましたが、以下のような dd コマンドを実行した前後で、free コマンドを実行すると、buffers が増えるのでおかしいなと思って調べてみて気づきました。 oel11gr2 root% dd if=/dev/sda1 of=/dev/null count=100 bs=1M 嘘ついてたみたいです。デバイスファイルに対して読み書きする場合、そのデバイスファイルがファイルシステムとして使われているか、キャラクタデバイスとして使われているかなどの違いにより挙動(ページキャッシュやバッファページにキャッシュされるか否かなど)が変わるようです。従って

    バッファページにブロックバッファをキャッシュするのはファイルシステムではない? - ablog
  • ファイルがページキャッシュに乗っているかどうかを調べる - ablog

    Linux上で任意のファイルがページキャッシュに乗っているかどうか調べるCで書かれたプログラムを見つけたので、コンパイルして実行してみた。 Linux上のとあるファイルがページキャッシュに乗っているかどうかを調べたいなーと思ってGoogle先生にご相談したところ、こんなコマンドを教えてくれた。 ファイルをメモリにマップして、mincore(2)でページごとにRAMに存在するかどうかをチェックしているらしい。 mmapしても即メモリにロードされるわけではないのかぁ。 Cの部分だけ抜き出して、単体で動かしてみた。 #include <errno.h> /* errno */ #include <fcntl.h> /* fcntl, open */ #include <stdio.h> /* perror, fprintf, stderr, printf */ #include <stdlib.

    ファイルがページキャッシュに乗っているかどうかを調べる - ablog
  • メモリ使用量の確認

    サーバのメモリが思った以上に消費していたのでサックリ調べてたのですが 各プロセスのメモリ使用状況の調べ方としては ps aux --sort=-rss | head -40とやるとRSSのサイズでソートしてくれるのでheadとかでみてやればメモリ使用量が多い順に参照可能。 ただたんにps auxしただけだと見るのがしんどい。 topでもshift+Mで同じ感じでみれるのでそれでも良い。 (cを入力してプロセスの詳細を表示するとなおよい) あとはCoWに乗ってるかを調べたが、 http://d.hatena.ne.jp/naoya/20080212/1202830671 naoyaさんが紹介されている方法そのまんまでよいでしょう。 sudoして実行すること。 Cowはアプリの質にもよるが基的にはライブラリが共有メモリに乗ってればいいから アプリの質をみつつsharedなパーセントを調整出

  • VirtualBox での unixbench 実行結果を32ビット版と64ビット版それぞれで比較してみる - [ぴ](2010-10-31)

    ※β = apache2 + php5 + libapache2-mod-perl2 + libapache2-mod-python + libapache2-mod-ruby + libapache2-mod-jk + postgresql + mysql-server + squid3 まとめ -/+ buffers/cache を見ると、64ビット版は32ビット版と比べておおむね1.6倍メモリ喰いであることがわかる。 これはほとんどデータの入っていないコード中心のメモリ利用における比較なので、実運用においてはより差が縮まるとは思われるが、それでも 512MB という少ないメモリ環境では無視できない差。 極端な言い方をすれば、メモリ 512MB の環境を64ビット版 OS で使うという行為は、32ビット版 OS をメモリ 320MB の環境で使うようなもので、実にもったいない。 さくら

    VirtualBox での unixbench 実行結果を32ビット版と64ビット版それぞれで比較してみる - [ぴ](2010-10-31)
  • BSS領域はだれが0クリアしているのか? - 答え

    答えは、 1. カーネルが、プログラムのロード時に行う。 なぜカーネルが行っているかの理由はわからないが、ユーザーランドの初期化ルーチンが0クリアするよりも、カーネルが行うほうが圧倒的に効率がよい。 以下、なぜ効率がよいかの説明。 プロセスがロードされるとき、メモリに一度に全てロードされるわけではない。 ページと呼ばれる4KBの塊ごとに分割され、アクセスがあったページだけがメモリにロードされる。 (これを、demand-pagingと言う) このdemand-pagingにより、プロセスの起動時間の短縮と、必要なメモリ量の低減が実現できる。 プロセスが初期値0の変数にアクセスすると、その変数が存在するページ4KBだけがメモリに割り当てられる。 その際、カーネルが0クリアしたページが割り当てられる。 もしユーザーランドの初期化ルーチンが0クリアするとなると、 memset(bssarea,

    tyru
    tyru 2010/04/10
    コメントも参照
  • メモリ破壊の現場を見つけるTips - I am Cruby!

    RubyAdventJP, GC, Ruby(この記事はRuby Advent Calendar jp: 2009 : ATNDの4日目です。前日はmrknさんでした) 健全なるRubyistであれば、RubyのGCをいじることが週に一度はあるでしょう。そのときに困るのが、GCをいじってしまったことによるバグの修正です。GCをいじるというのは想像以上に難しく、少しでも書き間違えるとメモリ破壊が発生します。そのときに使えるTipsをこの記事で書くことにします。 みなさんご存じの通り、メモリ破壊というのは原因を特定するのが困難です。これは問題が発覚する場所とメモリ破壊が起こった現場が位置的に遠いことに起因しています。偉大なるハッカーのまつもとさんですら、その発見は困難です。 [ruby-dev:38628] Re: [BUG: trunk] called on terminated objec

  • Manpage of MMAP

    Section: Linux Programmer's Manual (2) Updated: 2008-06-05 Index JM Home Page roff page 名前 mmap, munmap - ファイルやデバイスをメモリにマップ/アンマップする 書式 #include <sys/mman.h> void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset); int munmap(void *addr, size_t length); 説明 mmap() は、新しいマッピングを呼び出し元プロセスの仮想アドレス空間に作成する。 新しいマッピングの開始アドレスは addr で指定される。マッピングの長さは length 引き数で指定される。 addr が NULL の場合、カーネ

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

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

  • Linuxmania: Linux Fedora8 32bit版で4GB以上のメモリを使う(Fedora,CentOS)

    Linuxでは、PAE機能を有効にした kernel-PAE というカーネルで起動することで、32ビット版でも4GB以上のメモリを認識することができます。(同様に一部のWindows OSでも (Windows Server 2003など)、PAE機能を有効にして4GB以上のメモリを認識することができるようです) ※PAE (物理アドレス拡張) メモリアドレス空間を拡張することで、32ビットOSで大容量メモリを 認識可能にするインテル・アーキテクチャの機能です。 参考:物理アドレス拡張 - Wikipedia(外部リンク) 1. PAE有効カーネルのインストール # yum install kernel-PAE 2. grub設定 DG33BUなどマザーボードによっては、カーネルオプションでメモリ容量を明示的に指定する 必要があるため、ここでは mem オプション指定の例を紹介します。(下

  • Open Tech Press | 32ビットLinuxで大容量RAMを使う方法

    このところ、多くのマシンが2GBないし4GBのRAMを搭載しているが、所有者たちはある問題に悩まされている。そうしたマシンで32ビット版のGNU/Linuxディストリビューションを実行すると、大容量RAMを活かしきれないのだ。幸いにして、この問題は特定のパラメータをいくつか有効または無効にしたカーネルをインストールするかビルドするだけで解決できる。 この問題の原因は、32ビット版のLinuxカーネルがデフォルトでは1GBまでのRAMにしかアクセスできないように作られていることにある。この制限への対処方法は、かつてDOSで使われていた仮想メモリによる解決を彷彿とさせるもので、仮想メモリの上位メモリ領域が絶えず物理アドレスにマッピングされるようにするというものだ。こうした上位メモリは、あるカーネルパラメータによって最大4GB、Pentium Pro以上のプロセッサでは別のパラメータによって最大

    Open Tech Press | 32ビットLinuxで大容量RAMを使う方法
  • 1