タグ

メモリとカーネルに関するiwwのブックマーク (15)

  • スワップの弁護:よくある誤解を解く

    (This post is also available in English.) この記事は In defence of swap: common misconceptions を 著者の Chris Down さんの許可 を得て Hiroaki Nakamura が日語に翻訳したものです。 原文のライセンス は CC BY-SA 4.0 であり、翻訳のライセンスも同じく CC BY 4.0 とします。 長文を読みたくない方への要約: スワップを持つことは正しく機能するシステムのかなり重要なポイントです。 スワップが無ければ、まともなメモリ管理を実現することは難しくなります。 スワップは一般的に緊急事態用のメモリを取得するためのものではなく、メモリの回収を平等に効率的に行うためのものです。 実のところ「緊急事態用のメモリ」は一般的に盛大に悪影響を及ぼします。 スワップを無効にすることは

    スワップの弁護:よくある誤解を解く
  • 革命の日々! @ITのmeminfoの見方の説明が完全に間違っている件について

    http://www.atmarkit.co.jp/flinux/rensai/tantei01/bangai01c.html Activeはページキャッシュや無名ページ(注3)のうち、最近利用したり、まだストレージとの同期が取れていない「捨てられない」ページです。Inactiveは、同じくページキャッシュや無名ページのうち、最後にアクセスされてからある程度時間がたち、ストレージとの同期も完了していて、すぐに捨てられるページです。よって、/proc/meminfoの出力でいうところの MemFreeとInactiveを足すことで確実に利用可能なメモリ量を算出することができます。 (実際に利用可能なメモリ量)≒(MemFree+Inactive) この値を利用し、一定量を下回らないようにするのが、簡単・確実なメモリ利用率監視法といえます。 間違ってる。完全に。 たぶんNTT OSSセンタとい

  • メモリダンプと模様が見える男|kamezawa.hiroyuki

    10年以上前の昔話であり、そんなこともあったのねという話。あるいはエンタープライズサポートってそんなことやってるのねという話。 カーネルメモリダンプLinuxカーネルをエンタープライズに使おうとした企業、富士通やIBM、日立といった企業がこぞってカーネルに入れようとした機能がカーネルがパニックした時に「なぜコケたのか」調べるための機能であった。その最たるものがメモリダンプだった。この機能はカーネルパニックが起きた後のメモリをディスクに吐き出す。この吐き出されたメモリイメージをダンプと呼び、これをデバッガにわせて原因調査をする。 カーネルデベロッパはパニックが起きたら再現条件を探して理詰めでバグを探すのが得意だが、顧客先でパニックが起きたら「再現させてくれ」とは中々言えないのでこの機能はサポートには重要だった。そして、ダンプ調査の技を持つエンジニアも居た。 地雷型メモリ破壊パニック色々と調

    メモリダンプと模様が見える男|kamezawa.hiroyuki
    iww
    iww 2020/02/20
    『「模様が見える」』 素敵な人だ。 こういう能力はどこに行っても形を変えて通用するんだよな
  • /proc/meminfoを考える - めもめも

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

    /proc/meminfoを考える - めもめも
    iww
    iww 2018/10/31
    あとで印刷して壁に貼っておく
  • The OOM CTF

    カーネルのバージョンやシステムの構成や実行するタイミングなどの変動要因により、結果が異なる場合がありますことを予めご了承ください。 0.3 自己紹介:熊Linux との関わりについて OSレベルでのセキュリティ強化 2003年4月から2012年3月までは、 TOMOYO Linux という Linux システム向けのアクセス制御モジュールの開発に携わってきました。バッファオーバーフロー脆弱性やOSコマンドインジェクション脆弱性を撲滅できない状況で、当初は SELinux という難解なアクセス制御モジュールしかありませんでした。 TOMOYO Linux のメインライン化にまつわる苦労話は、セキュリティ&プログラミングキャンプ2011の講義資料を参照していただければと思います。 TOMOYO Linux から始まって AKARI や CaitSith に至るまでの変遷は、セキュリティ

    The OOM CTF
  • リード・コピー・アップデート - Wikipedia

    リード・コピー・アップデート(read-copy-update、RCUと略記)とは、オペレーティングシステムにおいて一種の排他制御[note 1]を実装する同期機構であり、リーダー・ライターロック(英語版)の代替手段として使われることがある。参照において待ち状態が生じず、極めてオーバーヘッドが低い。しかしRCUにおけるデータ更新は、既存の参照者のために古い版のデータ構造を保持しつつ行うため、時間と空間(メモリ)をより多く必要とする。古い版のデータ構造は、既存の参照者が全てアクセスを完了した後で回収される。 RCUでは「参照側クリティカルセクション」という概念があり、通常 rcu_read_lock() と rcu_read_unlock() で挟まれた部分がそれにあたる。参照側クリティカルセクション内にない文は「不活性状態」と呼ばれ、RCUで保護されたデータ構造への参照を保持することは許さ

  • 【お知らせ】メモリ枯渇時の挙動の安定性が改善された Linux カーネル 4.15 が公開されました | NTTデータ先端技術株式会社

    Tweet お知らせ - 2018.02.22 Linux カーネルはメモリが枯渇した際の挙動を十分に考慮しておらず、メモリの枯渇が原因でLinux システムがハングアップしてしまうことがあるという問題があります。 この問題に当社ソリューション事業部 半田 哲夫が4年半取り組み続けた結果、メモリの枯渇時にハングアップしてしまう処理の多くが修正されました。現時点までの道のりは、以下の資料/動画でご覧いただけます。 資料:https://elinux.org/images/7/73/CELFJP-Jamboree63-handa-ja.pdf(社外サイト) 動画:https://youtu.be/ZznEyf1PN0Q(社外サイト)

    【お知らせ】メモリ枯渇時の挙動の安定性が改善された Linux カーネル 4.15 が公開されました | NTTデータ先端技術株式会社
  • Man page of MEM

    Section: Linux Programmer's Manual (4) Updated: 2015-01-02 Index JM Home Page roff page 名前 mem, kmem, port - システムメモリー(system memory)、カーネルメモリー (kernel memory)、システムポート(sysmem ports) 説明 /dev/mem はコンピュータのメインメモリーイメージのキャラクターデバイスファイルである。このデバイスは、例えば、システムを 検査するため (また、パッチをあてるため) に使われるだろう。 /dev/mem のバイトアドレスは 物理メモリーアドレスとして解釈される。 存在していない場所への参照はエラーが返される。 読み込み専用(read-only)あるいは書き込み専用(write-only)のビットへの検 査あるいはパッチ当て

    iww
    iww 2016/09/26
    CONFIG_STRICT_DEVMEM があるとアクセス制限がかかる。
  • 【RHEL】linuxメモリのfreeとmeminfoの関係を図解し利用率の計算方法を説明してみる - のぴぴのメモ

    はじめに linuxのメモリ利用容量(空き容量)の考え方 linuxのメモリ利用容量/空き容量の計算方法 ■RHEL7 【freeコマンドとmeminfoの図解】 【計算方法】 freeコマンド表示例 /proc/meminfo表示例 ■RHEL6 【freeコマンドとmeminfoの図解】 【計算方法】 freeコマンド表示例 /proc/meminfo表示例 ■RHEL5以前 【freeコマンドとmeminfoの図解】 【計算方法】 freeコマンド表示例 /proc/meminfo表示例 蛇足 その1:無名ページとファイルページ その2:図解の内容のツッコミ その3:RHEL6の計算 その4:Inactiveを空き領域とすることは間違い。 はじめに linuxサーバを利用する上で何時も頭を悩ますものの一つが、メモリ利用状況の評価(メモリ利用率)ではないでしょうか。私も悩みます。そこで

    【RHEL】linuxメモリのfreeとmeminfoの関係を図解し利用率の計算方法を説明してみる - のぴぴのメモ
  • UIO: User-space I/O その1 - reservoirのブログ

    UIO: ユーザー空間でデバイスドライバ作成が可能に UIOがLinux Kernel 2.6.23-rc1でマージされました。UIOはユーザー空間でドライバを作成するための仕組みです。Hans-Jurgen Kochの提案したパッチで、Greg K-H経由でマージされています。 UIOは、これらのハードルがあるカーネル空間でのドライバ開発部分をテンプレート化することで簡便にしてしまいます。一部の定義をカーネル空間で用意する必要がありますが、大半の部分をユーザー空間だけで実装できるようです。メモリにデバイスのレジスタなどさえマップできればよい、あるいは割り込みの通知さえ行えればよいのであれば利用できます。 ユーザー空間でUIOを利用する側からは、/dev/uio0をopenしてmmapすると、デバイスのメモリ空間が見えます。また/dev/uio0からreadすると、割り込みが起きるまでブロ

    UIO: User-space I/O その1 - reservoirのブログ
  • OOMKillerに亭主を殺されて一年が経ちました。 - 私が亭主と出会ったのは今からちょうど4年2ヶ月前、私がGentoo... - Yahoo!知恵袋

    OOM Killerに亭主を殺されて一年が経ちました。 私が亭主と出会ったのは今からちょうど4年2ヶ月前、私がGentooをインストールしていたときでした。 亭主はそれなりに経験があるkernel hackerだったので、いとも簡単にGentooをインストールしてくれ、私は一目惚れしてしまいました。 幸い亭主も私も同じVim教だったので、教会で素敵な結婚式を挙げることができました。 少し下品な話ですがmakeに励んだおかげで子宝にも恵まれ、私たちは幸せに暮らしていました。 でも、二人とも気づかなかったのです。 まさか私たちのメモリが限界を迎えていたなんて、思ってもみませんでした。 「メモリ不足な昔の話だからどうせ私たちには関係ない」 - そう思っていたのが間違いだったのです。 亭主は突然、あの悪名高きOOM Killerに殺されてしまったのです。 そこからは悪夢のような日々でした。 毎日毎

    OOMKillerに亭主を殺されて一年が経ちました。 - 私が亭主と出会ったのは今からちょうど4年2ヶ月前、私がGentoo... - Yahoo!知恵袋
  • 減り続けるメモリ残量! 果たしてその原因は!?

    物理メモリ使用状況の把握には何を使う? では、ストレージとの同期情報まで加味したメモリの使用状況監視を行うには、どうすればよいのでしょうか? 実は現在(注2)のところ、「これで完ぺき」という方法はありません。ただ、それでは困るので、ここでは次善の策としてActiveとInactiveを監視する方法を挙げます。 ActiveとInactiveはvmstat -aやcat /proc/meminfoなどと入力することで取得できます(図5)。 Activeはページキャッシュや無名ページ(注3)のうち、最近利用したり、まだストレージとの同期が取れていない「捨てられない」ページです。Inactiveは、同じくページキャッシュや無名ページのうち、最後にアクセスされてからある程度時間がたち、ストレージとの同期も完了していて、すぐに捨てられるページです。よって、/proc/meminfoの出力でいうところ

    減り続けるメモリ残量! 果たしてその原因は!?
    iww
    iww 2010/11/10
    間違いらしい
  • Linuxエンジニア日記 ページキャッシュの効率化

    メモリチューニングの一環としてページキャッシュの効率化を纏めてみます。 ちなみにLinuxは空きメモリをがしがしファイルI/O用のキャッシュとして利用しますが、 メモリはページ単位で分割管理されており、これらのキャッシュをページキャッシュと言います。 (これらは使われっぱなしではなく頻繁に割当て、解放が行われています) ではページキャッシュのチューニングとは何をするかと言うと、 要は無駄なページキャッシュを残さないようにしてあげればよいのです。 通常のI/O処理はライトバックで処理されているので、ページキャッシュに書き込まれた時点で プロセスには書き込み完了通知が返され、キャッシュ上のデータはバックグランドでディスクに 書き込まれていきます。 ライトバックしたキャッシュ上のデータは解放可能なデータとなりますので、 頻繁にライトバックをしてあげる事でキャッシュの解放サイクルを早める事が出来ま

  • Linuxのページキャッシュをきれいさっぱり消すには? | Tricorn Tech Labs

    oktです。 インフラ系とか社内システムとかいろいろ担当してます。 Linuxのカーネルは過去に読み込んだディスクの内容をメインメモリに保持する機能を持ってます。 重要な機能ですが、普段サーバ等を触っている分には意識しないことが多くハマったりします。 意識しないでプログラムの検証なんかしていると、キャッシュ有無で大きく結果が違ったりします。 ちなみにページキャッシュ自体についてはhatenaのnaoyaさんの記事を読むのをお勧めします。 そんなわけで、意図的にキャッシュを消したい場合には?という方のためにメモを残してみます。 linux kernel 2.6.16以降、以下の操作でページキャッシュを強制的にクリアすることができます。 ちなみに、RHEL4は2.6.9ベースのカーネルですが、RHEL4.6から実装されています。 # echo 1 > /proc/sys/vm/drop_cac

    Linuxのページキャッシュをきれいさっぱり消すには? | Tricorn Tech Labs
  • 革命の日々! 「Linux カーネルの zero-day exploit コード、リリースされる」への余談

    http://slashdot.jp/linux/article.pl?sid=09/07/22/0121226 この脆弱性であるが、Linuxにおいてはユーザプロセスが0番地にmmap()することが合法だったので ユーザ空間のデーモンなどにも大穴があいていた。 んで、そもそもなんで0番地mmapなんかする必要があるんだーーという議論になり、vm86では必要とか そんな議論に。 で、一時互換性重要派閥が勝利しかけたんだけど、Linus裁定により、特殊なpersonalityを持つプロセス以外0番地mmap()できなくなったはず。 うろ覚えで書いているから、まったく間違っているかもしれない。 まあ、ようするにgccの仮定がセキュリティ視点からはナンセンス極まりなかった。とそういうイージーな問題。 追記:なんか、Eric Parisがうだうだ言ってたので貼っとく。 ようするに、SELinux

  • 1