タグ

memoryに関するkamipoのブックマーク (40)

  • Linux のオーバーコミットについて調べてみた

    Linux のオーバーコミットについて調べてみた Linux のオーバーコミットのはなし(これを書いたのは Linux 2.6.38 のとき) Linux カーネルは実メモリ以上にメモリをプロセスに割り当てることができる この仕組みをオーバーコミット (over-commit) と呼ぶ オーバーコミットでは,とりあえずメモリを malloc させて仮のアドレスを返しておき, 実際に使われる段になってはじめて実メモリを確保する. 実験ただ malloc し続けるだけのプログラムを作って実験してみる. このプログラムをメモリ 1 GB + スワップ 1 GB のホストで実行してみると, $ free -t total used free shared buffers cached Mem: 1022404 82992 939412 0 4172 12280 -/+ buffers/cache:

    Linux のオーバーコミットについて調べてみた
  • /proc/meminfoを考える - めもめも

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

    /proc/meminfoを考える - めもめも
  • レッドハット マガジン 64ビットコンピューティング: 32ビット環境での共存

    Guilt is usually considered a negative emotion, but by steering it well, you can achieve surprising success.

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

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

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • 「きまぐれPCひろば」のTOPICS » 空きメモリの確保の仕方(メモリーチューニング)(kernel2.6)

    linux kernel2.6 での メモリーチューニングの方法。大容量物理メモリの場合、ほとんどがページキャッシュ・ファイルキャッシュ。 必要な処置 A.早めにダーティーページを掃除させる B.できるだけスワップさせない C.最低空き容量を大きくする。 →ファイルキャッシュがたまらない →1つのプロセス分の空きメモリを空けていれば、プロセス起動時にスワップしない。 →メモリが必要になった瞬間の、スワップによるスローダウンが防げる A.早めにダーティーページを掃除させる pdflushがダーティーページの掃除を行う vm.dirty_ratio > ダーティーページの割合 > vm.dirty_background_ratio のときpdflushがバックグラウンドで掃除 ダーティーページの割合 > vm.dirty_ratio のときdflushがフォワグラウンドで掃除 なので、vm.d

  • 実行時に使用したメモリを取得する幾つかの方法 - blog.nekokak.org

    あんまこういうの詳しくないので、詳しい人に教えてもらいたいのですが、 Perlのプログラムでどれだけメモリを消費したか確認するのに幾つか方法があると思います。 今回はwebアプリで1リクエスト毎に消費したメモリを取得したい感じ。 自分が知ってる方法は 1:Plack::Middleware::Debug::Memoryでやってるようにpsを叩いてメモリを取る my $out = `ps -o rss= -p $$`; $out =~ s/^\s*|\s*$//gs;こういうやつ。 2:Devel::Mallinfoを使う Devel::Mallinfoを使えばmallinfoが取得できるので、mallocされたサイズを取得できるので 開始と終了でmallinfoをとって差分を出せばプロセス中にどれくらいメモリを消費したかが分かる。 #! /usr/bin/perl use strict;

  • sar -r でメモリ使用状況を確認する - ablog

    # sar -r 00:00:00 kbmemfree kbmemused %memused kbmemshrd kbbuffers kbcached kbswpfree kbswpused %swpused 00:10:00 220216 3875156 94.62 0 289288 1707500 2024592 72536 3.46 00:20:00 215180 3880192 94.75 0 289312 1707672 2024592 72536 3.46 00:30:00 214552 3880820 94.76 0 289340 1707804 2024592 72536 3.46 kbmemfree: 物理メモリの空き容量 kbmemused: 使用中の物理メモリ量 %memused: 物理メモリ使用率 kbbuffers: カーネル内のバッファとして使用されている物理メ

    sar -r でメモリ使用状況を確認する - ablog
  • スラブアロケータ - Linuxカーネルメモ

    linux-2.6.16.1でのメモ。 1. 概要 Buddy Systemでは物理ページ単位のメモリの確保になるため、あるメモリオブジェクト(例えばプロセスのtask_structとか)を動的に確保するのには向いていない。スラブアロケータではBuddy Systemとの間に入り、メモリオブジェクトの確保/解放機能を提供する。 スラブアロケータでは、あらかじめメモリオブジェクトに対してキャッシュ(kmem_cache)を作っておき、そのキャッシュからメモリオブジェクトを取得する形をとる。キャッシュは足りなくなれば自動的に確保されるようになっている。 Slabから取得するバッファはBuddy Systemから取得しており、以下の特徴がある。 仮想アドレスに対して物理ページが割り当て済み(アクセスしてPageFaultになることはない)物理的に連続ページ 2. スラブアロケータの特長スラブアロ

  • Charming Python: Functional programming in Python, Part 3

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Charming Python: Functional programming in Python, Part 3
  • SystemTapで真犯人を捕まえろ!

    SystemTapで真犯人を捕まえろ!:Linuxトラブルシューティング探偵団 番外編(3)(1/4 ページ) NTTグループの各社で鳴らした俺たちLinuxトラブルシューティング探偵団は、各社で培ったOSS関連技術を手に、NTT OSSセンタに集められた。普段は基的にNTTグループのみを相手に活動しているが、それだけで終わる俺たちじゃあない。 ソースコードさえあればどんなトラブルでも解決する命知らず、不可能を可能にし、多くのバグを粉砕する、俺たちLinuxトラブルシューティング探偵団! 助けを借りたいときは、いつでもいってくれ! OS:高田哲生 俺はリーダー、高田哲生。Linuxの達人。俺のようにソースコードレベルでOSを理解している人間でなければ、百戦錬磨のLinuxトラブルシューティング探偵団のリーダーは務まらん。 Web:福山義仁 俺は、福山義仁。Web技術の達人さ。Apache

    SystemTapで真犯人を捕まえろ!
  • Solaris10 技術情報の備忘録 : プロセス管理 - pmap アドレス空間マッピング情報の確認 -

    2010年07月27日19:03 プロセス管理 - pmap アドレス空間マッピング情報の確認 - カテゴリプロセス管理 pmap コマンドでプロセスのアドレス空間マッピングの様々な情報が確認できますが、ここでは、 -x オプションと -S オプションを紹介します。 -x を付けることで、各マッピングサイズ、常駐物理メモリサイズ、匿名(非共有)メモリのページ数、が横並びに表示されるので、この表示を見れば、プロセスがどういうメモリの使い方をしているのかが分かります。 # pmap -x 439 439:    /usr/lib/inet/inetd start Address  Kbytes     RSS    Anon  Locked Mode   Mapped File 08045000      12      12       8       - rw---    [ stack

  • Linux のメモリー管理(メモリ―が足りない?,メモリーリークの検出-防止)(Kodama's tips page)

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

  • http://www.daw-pc.info/hard/memory/basicknowledge.htm

  • Linux のメモリキャッシュをクリアする | futuremix

    Linuxtop コマンドや free コマンドで表示される cached は、勝手にどんどん増えていきます。free がなくなるとこの cached が少しずつ解放されて使われます。 cached も buffers も空きメモリの一部ですので、これらが溜まっているからといって無理やり解放させる必要は通常はありません。cached を溜めているのはパフォーマンスのためなので、解放させると通常使用時のパフォーマンスが落ちます。逆にこれを解放しておかないと、パフォーマンスの測定などで、正しい計測ができません。 kernel の 2.6.16 以降では、解放をコマンドから解放できるようになりました。root で # echo 1 > /proc/sys/vm/drop_caches のように /proc/sys/vm/drop_caches に1~3の値を書き込みます。値によって解放され

  • kernel:Memory Manage(4) OOM Killer - Simple is Beautiful

    空きメモリを確保する仕組みとして"OOM Killer(Out of Memory Killer)"というものがある OOM Killerは、空きメモリが足りない場合に強制的にProcessを終了させて強引に空きメモリを確保する OOM Killerは、空きメモリが確保できないためにシステム全体が停止してしまうことを防止するために用意されている OOM Killerはシステム停止を防止するために必要な機能だが、OOM Killerによる強制終了は大切なProcessを停止させてしまう危険性がある クラスタシステムなどにおいて、クラスタ監視Processが強制停止させられてしまった場合、それが原因となってクラスタの障害が発生してしまう危険性がある kernel2.6.17.1向けにOOM Killerを使用せずにkernel panicを起こさせるパッチが投稿された。これを使用すると、空きメ

    kernel:Memory Manage(4) OOM Killer - Simple is Beautiful
  • CFD W3U1333Q-2G (DDR3 PC3-10600 2GB 2枚組) 価格比較

    W3U1333Q-2G (DDR3 PC3-10600 2GB 2枚組) 価格比較 ホーム > パソコン > メモリー > CFD > W3U1333Q-2G (DDR3 PC3-10600 2GB 2枚組) CFD 2008年 9月 9日 登録 W3U1333Q-2G (DDR3 PC3-10600 2GB 2枚組) デスクトップPC用のDDR3-1333MHz(PC3-10600)メモリー(2GBX2) お気に入り登録 822 最安お知らせメールが受け取れます 価格情報の登録がありません 価格推移グラフ お気に入り製品に登録すると、価格が掲載された時にメールやMyページでお知らせいたします 価格帯:¥―~¥― (―店舗) メーカー希望小売価格:¥― メモリ容量(1枚あたり):2GB 枚数:2枚 メモリ規格:DDR3 SDRAM メモリインターフェイス:DIMM モジュール規格:PC3-

    CFD W3U1333Q-2G (DDR3 PC3-10600 2GB 2枚組) 価格比較
  • http://pcjuornal.com/PCJ1/topics/P3_DDRSDRAM.html

  • おおいしゆうのASミュージックスコア登録CGI

    昨今CPUクロックとかFSBとかメモリクロックとかの関係が大変分かりづらいので、簡単にメモ CPUクロック ベースクロックの整数倍(or半整数倍) CPU-ノースブリッジ間(FSB) Pentium4から4倍速になっているので、FSB=ベースクロックx4。intelの表示だとFSBを1/4倍するとベースクロックが求まる。例えばCore 2 Duo E6600(2.4GHz FSB1066)のベースクロックは1066/4=266MHzで、CPUのクロック倍率は9倍。Core 2 Duo T7600(2.33GHz FSB667)はベースクロック166,倍率14倍。 Pen4以降バス幅は64bitなので、データ転送速度はCore2DuoT7600のケースで667Mx64bit/8=5.33Gバイト/s。 ノースブリッジ-メモリ間 SDRAMは表記そのまま。DDRはクロックの立ち上がり立ち下がり

  • 革命の日々! PSSとUSS

    http://journal.mycom.co.jp/news/2008/04/18/007/index.html プロセス管理機構も見直され、プロセスごとのメモリ使用量をかんたんに測定できる機能が追加された。カーネル2.6.25では、プロセスが使用するページに対応する物理ページ配置をプロセスごとに/proc/$PID/pagemapsとして作成、これを他のプロセスと比較することで共有するページを判別できる。共有ページを共有しているプロセスの数で除した数値を持つ「proportional set size (PSS)」と、共有されていないページをカウントした「unique set size (USS)」という2つの統計値も新設された。 この説明はへんだ。 カーネル内にUSSという統計値は存在しない。また、pagemapsというファイルは存在しない(pagemapだ) pagemapはページ

  • linuxで httpd が使ってるメモリ総量を調べる話 - kazuhoのメモ置き場

    Perl等のLLでウェブアプリケーションサーバを書いていると、普通はマルチプロセスモデル (apache なら prefork とか) で運用することになると思う。で、それらがどれだけメモリを使っているか、っていうのはチューニングにおいて重要になってきたりする (んじゃないかと思う) けど、そもそもメモリの総使用量をどうやって測定するのか。 20:20追記: PSSを使ってワンライナーで測定するのが簡単 (コメント欄参照)。kosakiさんありがとうございます。 $ sudo perl -le 'for my $p (@ARGV) { open my $fh, "< /proc/$p/smaps" or die $!; map { /^Pss:\s*(\d+)/i and $s += $1 } <$fh> } print $s' `pgrep plackup` 914325以下は初回投稿時

    linuxで httpd が使ってるメモリ総量を調べる話 - kazuhoのメモ置き場
    kamipo
    kamipo 2009/12/21
    sudo perl -le 'for my $p (@ARGV) { open my $fh, "< /proc/$p/smaps" or die $!; map { /^Pss:\s*(\d+)/i and $s += $1 } <$fh> } print $s' `pgrep plackup`