You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Recent posts: 22 May 2025 » 3 Years of Extremely Remote Work 01 May 2025 » Doom GPU Flame Graphs 29 Oct 2024 » AI Flame Graphs 22 Jul 2024 » No More Blue Fridays 24 Mar 2024 » Linux Crisis Tools 17 Mar 2024 » The Return of the Frame Pointers 10 Mar 2024 » eBPF Documentary 28 Apr 2023 » eBPF Observability Tools Are Not Security Tools 01 Mar 2023 » USENIX SREcon APAC 2022: Computing Performance: Wha
Linux Kernel 2.4 Documentation: /usr/src/linux/Documentation/kbuild/config-language.txt kbuild/config-language.txt Config 言語仕様 [プレインテキスト版] 原著作者: Michael Elizabeth Chastain <mec@shout.net> 翻訳者: 川崎 貴彦 <takahiko@hakubi.co.jp> バージョン: 2.4.18 翻訳日時: 2002/02/27 Config 言語仕様 1999 年 10 月 18 日 Michael Elizabeth Chastain, <mailto:mec@shout.net> 日本語訳:JF プロジェクト 翻訳者:川崎貴彦 <takahiko@hakubi.co.jp> === はじめに Config 言語
6年ぐらい前に、execle, execlp が man では async-signal-safe にリストされてるけど間違ってるよという チケットを切ったんだけど、ずっと放置されてて https://bugzilla.kernel.org/show_bug.cgi?id=25292 6年後に対応してもらえましたよ。実装がなおったんだよね。 glibc 2.24 からexec系 syscall がまともになりました。 https://sourceware.org/bugzilla/show_bug.cgi?id=19534 みんな、Adhemerval Zanella に感謝しよう。 これ結構ひどくて、multi thread で forkした場合は以降は async-signal-safe しか呼んではいけないので exec呼んだらデッドロックリスクがある(かつmanには書いてない)とい
Kernelの新しい機能をフルに使おうとすると、新しいkernelを使う必要があるのですが、例えばCentOS6系でシステムを運用していた場合に、新しいKernelを使うべくCentOS7とかにあげるとsystemd含め運用が大きく変わってしまうため中々踏み出せないという状況があると思います。 そこで、運用も含めた検証がてらCentOS6用(他のバージョンでも動くかも)のKernel4系あるいは3系のイメージのrpmを簡単にビルドするシステムを作りました。 github.com 使い方 Mac上でgit clone https://github.com/matsumoto-r/kernel-4-build-system-for-centos6.gitして、 make するだけです。 すると、デフォルトではbuild/linux-4.1.1以下に以下のように必要なrpmが生成されます。 ls
コンテナを実現するのにカーネルに必要な機能としては大きく分けて 名前空間 リソース制限 があります. リソース制限は cgroup として実装されています (ここではこの話は置いときます). 名前空間は,その対象となる空間と他の空間を分ける機能を持っています.コンテナを作る場合,それぞれの空間で独立した uid/gid やネットワークインターフェースが存在しなければいけませんので,その機能を実現しています.既に Linux Kernel には色々な名前空間が実装されており,未実装でコンテナを安全に使うために必須と言われていたのが User Namespace (ユーザ名前空間) です.この実装は徐々に実装されてきていましたが,影響範囲が大きく,実装も難しいため実現していませんでしたが,ようやく kernel 3.8 で実装が完了するようです. 今までもコンテナごとに /etc/passwd
vDSO(7) Miscellaneous Information Manual vDSO(7) NAME topvdso - overview of the virtual ELF dynamic shared object SYNOPSIS top#include <sys/auxv.h> void *vdso = (uintptr_t) getauxval(AT_SYSINFO_EHDR); DESCRIPTION topThe "vDSO" (virtual dynamic shared object) is a small shared library that the kernel automatically maps into the address space of all user-space applications. A
この記事はLinux Advent Calendar 2014の25日目ですヽ(=´▽`=)ノ 今回はLinux Kernel Hack入門編ということで入門的なことを書いてみたいと思います。 まず使用する環境ですけど最近出たばっかのFedora 21のWorkstationにしました。まあ、今回の内容的にはディストリビューションは問わないんですが、多くの人が馴染んでいるであろうfedora系というかパッケージマネージャがyumということでこれにしてみました。 自分は普段Arch Linuxなんですけど、こっちだとkernelのmake install時にちょっとしたスクリプトを書く必要があったりするのもあって、fedoraのほうが手軽かなというのもあります。 カーネルコード・リーディング ブラウザベースでコード・リーディング 読めるソースは大概メインラインのカーネルということになりますが
もう何百回もやってるはずなのに定期的にハマるのでメモ kernelのspec ファイル書き換えてオレオレカーネルを作るには以下の三箇所を変更する まず、rpm名を書き換えるために6行目ぐらいのbuildidのところ、コメントアウトされてるのを元に戻す 変更元) # % define buildid .local 変更後) %define buildid .mytest ここで罠なのは % と define の後に、スペースを入れるのは許されていないのだが、なぜか 変更元はスペースが入っているのでまんまと騙されることである。 あと、名前は "." で初めておかないと、いろいろと後悔する。 kernel-3.10.0-1.el7.mytest.src.rpm みたいなファイル名になるんだが、ここで "." がないと、前の el7 とくっついてしまう。 次に # empty final patc
通りすがりの貴方・・・・ /proc/meminfoのあっちの値とこっちの値を足したら、なんでそっちの値と同じにならないの・・・・ と悩んだことありますよね? /proc/meminfoは、カーネルが内部的に管理している枠組みでのメモリ情報をそのまま出しているので、残念ながらユーザ視点で知りたいメモリ情報とは一致しません。 とはいえ、変な解釈をして無意味に悩まないために、それぞれの値の意味合いと項目間の関係を知っておくのは有意義です。私の理解の範囲で、それらの関係をまとめていきます。 #私の理解も完璧ではないので、間違いあればやさしくご指摘お願いします。 参考資料 http://mkosaki.blog46.fc2.com/blog-entry-1007.html 2011/09/07 追記: tmpfsがSwapCachedに含まれるのは幻想でした。tmpfs=Shmemに修正しました。
MemTotal: 1001008 kB MemFree: 200708 kB Buffers: 43400 kB Cached: 395740 kB SwapCached: 0 kB Active: 557556 kB Inactive: 178624 kB HighTotal: 97216 kB HighFree: 140 kB LowTotal: 903792 kB LowFree: 200568 kB SwapTotal: 2096472 kB SwapFree: 2096472 kB Dirty: 224 kB Writeback: 0 kB Mapped: 356492 kB Slab: 47820 kB CommitLimit: 2596976 kB Committed_AS: 689048 kB PageTables: 6192 kB VmallocTotal: 11468
I have recently been involved in diagnosing the reasons behind OOM invocation that would kill the MySQL server process. Of course these servers were primarily running MySQL. As such the MySQL server process was the one with the largest amount of memory allocated. But the strange thing was that in all the cases, there was no swapping activity seen and there were enough pages in the page cache. Iron
LVS構築における最強の手順書を残してみました。 はじめに ロードバランサ(LVS)の需要は間違いなくあると思うのですが、いかんせんネットに情報が少ない。 かの有名な「サーバ/インフラを支える技術」が出版された2008年あたりがピークの感がある。(Klabさんの記事には大変お世話になりました) Googleで調べてもまとまった情報がなかったりするので、最初は大変でした。 普段インフラ周りで仕事しているので、そこで培ったノウハウを出したいと思います。マイブログ史上最大の情報量。 今回は「CentOS6.4 x86_64マシン」に「最新版keepalived-1.2.7を導入」で「割りと本番運用に耐えられる手順」を解説。もちろん定番のIPVS + Keepalived のDirect Server Return(DSR)構成。 ※是非コメント欄でもさらに有益な情報がありましたら歓迎です。 内容
よく C10K 問題とかいって epoll(7) の話が出てきて select(2) 遅いね poll(2) 遅いねってなるんだけど、正直なところ、これらのシステムコールを実際に使ってコードを書いてみたひとはどのくらいいるのだろう。ましてや eventpoll が何やってるか知っている人はそんなに多くないんじゃないだろうか。もう O(n) だの O(1) だのって煙に巻かれるのもうんざりだ。 というわけで、2.6.26 の fs/eventpoll.c のコードを読んでみた。正直 Linux カーネルにすごく詳しいわけでもないので、誤りがあったら適宜突っ込んでもらえると幸いです。 前提知識として VFS モジュールがどうなってるかとかは LinuxのFSモジュールを書いてみる LinuxのFSモジュールを書いてみる (その2) のソース中のコメントを追ってもらえればと。 登場する構造体 e
こんにちは。斎藤です。 最近、新しいスキー板が欲しいなと思っています。現在使っているOGASAKAの板は5年目に入り、メーカーからこれ以上はチューンナップ(メンテナンス)はできないよ、と言われてしまいました。もし、次に買うなら、スノーボーダーの人と一緒にパウダーに飛び込みやすいセミファットタイプが良いのかなと考えています。皆さんのオススメ、ぜひ教えてください。 さて、今日はLinux Kernel上でのメモリ管理、特にページ回収(Page Reclaim)とスワップに絞り、「スワップの理由」「ページを回収する仕組み」そして「スワップの様子を観察する」の3点に分けてお話しします。「スワップするのが気持ち悪い」と考えている方は少なくないと思いますし、私もそう考えていた時期がありました。しかし、それは本当に悪い事なのか、今回掘り下げて行きます。 ※主な対象Kernelは2.6.32(Red Ha
障害テストなんかでよく使います。 RHEL系のOSはSysRqが有効化されてカーネルコンパイルされているのでマジックキーを使って簡単にカーネルパニックを発生可能。 # echo 1 > /proc/sys/kernel/sysrq # echo 1 > /proc/sys/kernel/panic # echo "c" > /proc/sysrq-trigger これでpanic rebootする。 書き込む文字を変えるといろいろな現象を意図的に起こせる。 詳細は kernel-doc パッケージに含まれる /usr/share/doc/kernel-doc-2.6.XX/Documentation/sysrq.txt に記載されている。 以下代表的なコマンド。 "c" panicさせる。kdumpの設定確認やどうしようも無くなったときに(テストの場合はsyncしてから "b" 即座にリブ
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 これまでも、多くの記事にされていて、恐らくKernelや巨大なコードを読んでいる人にとっては当たり前なのかもしれませんが、あまりに快適だったのとこれをきちんとやれてなかった事に自戒をこめて記事にしようと思います。grepとかscreenを駆使していた時間を返してほしい! 対象者 僕がLinux大好きなので、Linux上での動作を前提にしています。対象者はLinux KernelやApache HTTP Server等、数万から数十万、さらには数百万行のコードをじっくり読んでいきたいと考えている人におすすめしたいと思います。巨大なコードを何のツールも使わずに読むのはかなりきついはずです。しかし、今回はGNU GLOBALと呼ばれるソースコードタ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く