タグ

kernelに関するmasudaKのブックマーク (19)

  • sched_clock() overflow after 208.5 days in Linux Kernel

    えーっと、久しぶりに Linux Kernel にダメダメなバグが発見されて、よりにもよってうちの製品も影響を受けたので、ここに詳細を書くことにした。 つーか。新しい Kernel を使うなら皆で使おうよ。なんだよその「1つだけ」影響を受けて残りは「影響も受けないぐらい古い」ってのは… 概要 大雑把に 208.5日連続運転した Linux Kernel が突如として reboot する。 実機でなおかつ Time Stamp Counter を内包している必要があるので、Pentium4以降のプロセッサ(が、それはようするに今ある Intel 系CPU全部)か、その互換CPUである必要がある。32bit モード、64bit モードの区別はない。 逆に VMware や Xen など、仮想マシン上で動いている kernel に影響はない。これはそもそもバグを内包したルーチンを、仮想マシンで動

  • どうしてメモリはスワップするのか!?

    こんにちは。斎藤です。 最近、新しいスキー板が欲しいなと思っています。現在使っているOGASAKAの板は5年目に入り、メーカーからこれ以上はチューンナップ(メンテナンス)はできないよ、と言われてしまいました。もし、次に買うなら、スノーボーダーの人と一緒にパウダーに飛び込みやすいセミファットタイプが良いのかなと考えています。皆さんのオススメ、ぜひ教えてください。 さて、今日はLinux Kernel上でのメモリ管理、特にページ回収(Page Reclaim)とスワップに絞り、「スワップの理由」「ページを回収する仕組み」そして「スワップの様子を観察する」の3点に分けてお話しします。「スワップするのが気持ち悪い」と考えている方は少なくないと思いますし、私もそう考えていた時期がありました。しかし、それは当に悪い事なのか、今回掘り下げて行きます。 ※主な対象Kernelは2.6.32(Red Ha

    どうしてメモリはスワップするのか!?
  • RHEL(CentOS)6系でトラフィックをたくさん捌くサーバが死ぬ問題は6.5のkernel-2.6.32-431.el6以降で多分直る - このブログはURLが変更になりました

    タイトルで言いたいことはすべて言った。 経緯 うちの場合はLVS+keepalivedなロードバランサなんだけど、ちょくちょくkernel panicになる問題が発生してた。 そこでcrashコマンドで解析してみた。crashコマンドの使い方はこちらが参考になる。Linux crash dump 読み方入門 # crash /boot/System.map-2.6.32-279.14.1.el6.x86_64 /usr/lib/debug/lib/modules/2.6.32-279.14.1.el6.x86_64/vmlinux /var/crash/127.0.0.1-2013-09-27-16\:21\:01/vmcore (snip) SYSTEM MAP: /boot/System.map-2.6.32-279.14.1.el6.x86_64 DEBUG KERNEL: /usr

    RHEL(CentOS)6系でトラフィックをたくさん捌くサーバが死ぬ問題は6.5のkernel-2.6.32-431.el6以降で多分直る - このブログはURLが変更になりました
  • Linux Crash debug tips - I have a soft lockup, what is causing it ?

    A soft lockup is the symptom of a task or kernel thread using and not releasing a CPU for a period of time (the softlockup_thresh setting ).  User space processes should not be able to soft lockup a CPU. How is a soft lockup detected ? The Linux kernel creates a watchdog process for each CPU in the system.  This should be visible using in the standard "ps" command, this is shown as  [watchdog/N],

  • Mercurial-2.6の並列になったupdateの注意点 - 放牧日記

    いくつか注意点があることを id:flying-foozy さんに指摘してもらったので紹介します。 並列updateで10万規模のファイルを一度に更新するとlinux kernelでsoft lockupと誤認される 10万規模のファイルを更新するとlinux kernelでsoft lockupと誤認されるようです。 Bug 3902 - Parallel updates can trigger kernel dcache softlockup when enough files are written out バグとして登録されているのですが、linux kernel側の問題ということで、mercurial側で対応する気はないようです。 soft lockupとはタスクやカーネルスレッドがCPUを一定時間専有している状態(一定時間割り込みが禁止されている状態)を指すらしく、 通常はカー

    Mercurial-2.6の並列になったupdateの注意点 - 放牧日記
  • 同時にwrite(2)すると混ざるかどうか - kazuhoのメモ置き場

    Linux のシステムコールである write(2) の ドキュメントを読むと Atomic/non-atomic: A write is atomic if the whole amount written in one operation is not interleaved with data from any other process. This is useful when there are multiple writers sending data to a single reader. Applications need to know how large a write request can be expected to be performed atomically. This maximum is called {PIPE_BUF}. This volume of

    同時にwrite(2)すると混ざるかどうか - kazuhoのメモ置き場
  • mmapのほうがreadより速いという迷信について - kazuhoのメモ置き場

    @ITに以下のような記事が出て、 今回からしばらくの間は、まったく逆の例、つまり使うとプログラムの処理性能が上がるというシステムコールを紹介していく。システムコールを呼ぶ回数は少ない方が処理性能は高くなるという原則は変わらないが、呼び出しておくと処理性能が向上するシステムコールというものが存在するのだ。こうしたシステムコールを使わないでいることは、とてももったいない。 今回紹介するシステムコールは「mmap(2)」だ。ここでは詳しく仕組みを解説しないが、mmap(2)は、プログラムの処理性能に必ず良い影響を与える。 やはりあった? 高速化に効くシステムコール (1/2):知ってトクするシステムコール(3) - @IT それを真に受けたのか、「Go言語でmmapシステムコールを使ったファイル読み込みの高速化検討とC言語のコンパイラの話 - ryochack.blog」のようなブログエントリも

    mmapのほうがreadより速いという迷信について - kazuhoのメモ置き場
  • Loading...

  • Linuxカーネル3.9リリース、SSDをキャッシュとして利用する「dm-cache」やAndcroidエミュレータ機能などを新たに搭載 | OSDN Magazine

    Linus Torvalds氏は4月29日、Linuxカーネル3.9のリリースを発表した。SSDをハードディスクのキャッシュとして利用できる「dm-cache」や、新しい省電力モードの追加、Android環境のエミュレーション環境などが加わっている。 2月後半にリリースされたLinuxカーネル3.8から10週間での最新版リリースとなり、BrtfsでのRAID 5/6サポートやSSDキャッシュデバイスサポート、Androidエミュレータ機能、いくつかの新アーキテクチャサポートの追加、省電力機能の強化などが特徴となる。 Brtfsでは従来RAID 0/1のサポートのみが行われていたが、今回新たにRAID 5および6の実験的サポートが加わった。ただしクラッシュセーフではないため、テスト目的での実装というステータスとのこと。また、スナップショット情報を意識したデフラグ(Snapshot-aware

    Linuxカーネル3.9リリース、SSDをキャッシュとして利用する「dm-cache」やAndcroidエミュレータ機能などを新たに搭載 | OSDN Magazine
  • Linux のプロセスが Copy on Write で共有しているメモリのサイズを調べる

    Linux は fork で子プロセスを作成した場合、親の仮想メモリ空間の内容を子へコピーする必要があります。しかしまともに全空間をコピーしていたのでは fork のコストが高くなってしまいますし、子が親と同じようなプロセスとして動作し続ける場合は、内容の重複したページが多数できてしまい、効率がよくありません。 そこで、Linux の仮想メモリは、メモリ空間を舐めてコピーするのではなく、はじめは親子でメモリ領域を共有しておいて、書き込みがあった時点で、その書き込みのあったページだけを親子で個別に持つという仕組みでこの問題を回避します。Copy-On-Write (CoW) と呼ばれる戦略です。共有メモリページは、親子それぞれの仮想メモリ空間を同一の物理メモリにマッピングすることで実現されます。より詳しくは コピーオンライト - Wikipedia などを参照してください。 この CoW に

    Linux のプロセスが Copy on Write で共有しているメモリのサイズを調べる
  • Linuxでファイルディスクリプタが足りなくなりサービス停止障害 - モーグルとカバとパウダーの日記

    今日、Web/メール等のサービスを稼働させてる自社のLinuxサーバが、突然サービスが停止してしまう障害が発生した。 特にメールでトラブルが広がっており、プロセス見るとdovecot deliverとpop3が多数止まっている状況だった。 ログを見ると、deliverは「still being delivered」というエラー、pop3は「Too many open files in system」等のエラーを吐いていた。 最初はメールだけのトラブルと思い、とりあえずdovecotとpostfixのstopを掛けたのだが、デーモンの親プロセスは死ぬもののdeliverもpop3もSTATが「D」や「Ds」となっていたため「# kill -9」しても死なず。 いくつかログを見たところ、ファイルシステムの障害は考えにくかったため、リブートするしかなかろうということで「# shutdown -r

    Linuxでファイルディスクリプタが足りなくなりサービス停止障害 - モーグルとカバとパウダーの日記
  • coLinux上で動かしているopenSUSEで,iptablesが動作しない - yuu_nkjm blog(2010-04-22)

    [coLinux][Linux][Network][iptables] coLinux上で動かしているopenSUSEで,iptablesが動作しない 状況 iptablesが動かない."ip_tablesモジュールがないよ"と言うエラーが出た.エラーメッセージは控え忘れた. lsmodでインストールされているモジュールを見ると,確かにiptablesがない.ちなみに,rmmodと言うコマンドでモジュールの削除ができる. システムのバックアップはとっているし,場当たり的にやってみる. ip_tablesモジュールをコピー ip_tables.koがないので,coLinuxのインストールディレクトリ(Windows上のね)に存在するvmlinux-modules.tar.gzを解凍して,必要なファイルをコピー. tar zxvf vmlinux-modules.tar.gz cp -a vm

  • @IT:/procによるLinuxチューニング [後編](2/4)

    /procによるLinuxチューニング [後編] ~ /proc/sysの主要パラメータ群総解説 ~ 遠田 耕平 2002/12/17 /proc/sys/fsディレクトリ /proc/sys/fsには、ファイルシステム関連のチューニングパラメータが集められています。 file-max システム中のオープンファイル管理データの最大数を指定できます。 file-nr file-nr内のパラメータはそれぞれ、オープンされているファイル数、空きファイル管理データの数、システム中のオープンファイル管理データの最大数(file-maxと同じ)を示します。 ファイルのクローズ時には、使っていたファイル管理データを即座に解放するのではなく、いったん(次の機会に使えるように)取り置きます。この取り置かれている管理データの数が、2番目の数値となります。 inode-state、inode-nr inode-

  • Kernel 2.2.x におけるディスクの同期、非同期のパフォーマンス差

    最近、業のデータベースシステムのパフォーマンス劣化で悩む日々が続いております。いろいろ分析をしているのですが、何しろ Miracle Linux 1.0 を使っていて、Kernel が 2.2 系とちょっと古いのが痛い。情報が少ないんですよね・・・。 さて、パフォーマンスの問題は更新型データベースにありがちな、I/O 周りのパフォーマンス問題。 Linux の I/O 関係は Solaris に比べるといろいろと問題が発生しやすいのも事実で、例えば、とあるベンダーでは Ext3 を別名Exorcist3 (エクソシスト3)と皮肉ったりしています。実際、ウチの環境では Kernel 2.2 系のサーバで Ext3 を使ったパーティションは、良く問題を起こします。例えば、 ジャーナルファイル破損 mount を非同期モードの async にすると、メモリ上だけのデータが更新され物理ディスク上

  • [fol] Re: Linux パイプのサイズ変更について

  • カーネルチューニング - Yoshinba Linux wiki

    チューニング 始めに † linuxだけに限定しているものだが、OSのリコンパイルが必要になる場合も・・。 sysctl.confで事足りる場合もある。 参考サイトは以下 http://www.nxhack.tarumi.kobe.jp/linux_kernel_tuning.html これによると、/etc/sysctl.confに以下のような記述をすればよい、とのこと。 大規模サイト限定ですが・・・。 fs.file-max=32768 kernel.random.poolsize=2048 kernel.sem=250 32000 128 1024 kernel.msgmni=256 #kernel.shmmax=2147483648 # defualt 30 500 0 0 500 3000 60 20 0 vm.bdflush=30 500 0 0 60 300 60

  • バッファキャッシュとAIO(2) - O'Reilly Japan Community Blog

    プロセスがブロックする要因の一つにファイルI/Oがあります。これを同期I/Oと言いますが、POSIXではAIO(非同期 I/O、Asynchronous I/O)も定義しており、I/O中でもプロセスがブロックせず他の処理を進められるようになります。 今回は、バッファキャッシュを意識したさまざまなファイルI/Oについて解説します。 メモリマップ I/O ファイルI/Oの一種にメモリマップI/O、mmap(2)があります。mmap(2)(およびmmap2(2))はオープンされたファイルをプロセスアドレス空間へマッピングするもので、例えばアプリケーション内に領域を用意し、ファイルを読み取る動作は次のようにも実装できます。 3mmap.c 要約 { char a[N]; fd = open(path, O_RDONLY); read(fd, a, N) printf("%.*s\n", N, a)

  • OSS Message Pedia

    さあ、始めよう オープンソースプロダクトのメッセージを検索できます。あなたが使用しているソフトウェアのエラーメッセージの対処方法が分かります。 調査して欲しいメッセージ 153(ja) [4] Debug: sleeping function called from invalid context at : [1 month ago] 84(ja) [3] request_module: runaway loop modprobe [21 days ago] 5356(ja) [3] : VFS is out of sync with lock manager! [1 month ago] 22473(ja) [3] : dma_timer_expiry: dma status == 0x [3 months ago] 13057(ja) [3] tty_check_change: tty

  • 1