はじめに これは Linux Advent Calendar 2016 の第 11 日目の記事です。Linux のタスクスケジューラーのソースコードや関連するドキュメントなどを読んで分かったことをまとめました。とても長いです・・・ はじめにスケジューラーのアーキテクチャと重要な概念を紹介し、その後はスケジューラーコアとシステムコールの実装について分かったことを延々と述べます。調べきれなかったことや分からなかったことは TODO に残したので、コメント欄とかツイッターで教えてもらえると嬉しいです。間違いの指摘も大歓迎です。 ちなみに私が読み始めたきっかけは、スケジューラーのアーキテクチャ、スケジューリングアルゴリズム、スケジューリングアルゴリズムの切り替え方、nice 値やプロセッサアフィニティがスケジューリングに及ぼす影響、プリエンプションの流れ、マルチプロセッサにおけるタスクのロードバラ
There is much more to write about all the work we do at Facebook with memory management efficiency on our systems, but there was this one detour investigation in the middle of 2012 that I had to revisit recently courtesy of Wikipedia. There are lots of factors that make machines page out memory segments into disk, thus slowing everything down and locking software up – from file system cache pressu
Dear, I'm pleased to announce that ktap released v0.3, the archive is available at: https://github.com/ktap/ktap/archive/v0.3.tar.gz = what's ktap? A New Script-based Dynamic Tracing Tool For Linux ktap have different design principles from Linux mainstream dynamic tracing language in that it's based on bytecode, so it doesn't depend upon GCC, doesn't require compiling kernel module for each scrip
Peeking into Linux kernel-land using /proc filesystem for quick’n’dirty troubleshooting This blog entry is about modern Linuxes. In other words RHEL6 equivalents with 2.6.3x kernels and not the ancient RHEL5 with 2.6.18 kernel (wtf?!), which is the most common in enterprises unfortunately. And no, I’m not going to use kernel debuggers or SystemTap scripts here, just plain old “cat /proc/PID/xyz” c
When looking at system performance it is often useful to get concrete numbers on what the system is actually doing. Oprofile can give you interesting details like listings of every function called, the call graphs and timing information for a live workload on a running system. When the profile shows frequent calls to something like spin_lock() or up_read() though you're going to need to do further
Statistics Favorites 1 Downloads 0 Comments 0 Embed Views 0 Views on SlideShare 333 Total Views 333 仮想環境では、ゲスト OS が「物理的なメモリだ」と思っている仮想物理アドレスは、実際の物理アドレスではありません。そのため、ゲスト OS がメンテナンスしているページテーブルを直接 CPU が参照すると本来アクセスしたかったメモリとは違う箇所へアクセスすることになります。 そのため、仮想物理アドレスから物理アドレスへの変換表を管理しているハイパーバイザが「 shadow page table 」と呼ばれるページテーブルを用意します。ゲスト OS が管理するページテーブルを監視し、更新があれば影のようについていく、というところからこのような名前になっています。「 CR3 」レジスタの変更もハイ
pdflushを制御してLinuxのキャッシュバッファのチューニングを考えてみたいと思います。 kernel2.6系から書き込みに関するキャッシュバッファ管理はpdflushによって実現されています。これはkernel2.4系の時代にはbdflush+kupdateの組み合わせで実現されていたものです。このpdflushを制御することにより、ディスクI/Oを向上させる可能性があります。 ※ 当然ですが、パフォーマンスが向上するか否かは環境によります。 ・Linuxの遅延書き込み機構(ざっくりと) 一応、前提となる遅延書き込みについて簡単に触れておくと、データの書き込みは1次記憶装置から2次記憶装置へ・・・みたいな感じで、徐々に記憶容量の多いほうに渡されていきます。一般的に記憶容量が多くなるに反比例して記憶装置へのアクセスは遅くなりますね。 要はメモリからHDDへのディスク媒体にデータが書
Linux 3.5 has been released on 21 Jul 2012. Summary: This release includes support for metadata checksums in ext4, userspace probes for performance profiling with tools like Systemtap or perf, a sandboxing mechanism that allows to filters syscalls, a new network queue management algorithm designed to fight bufferbloat, support for checkpointing and restoring TCP connections, support for TCP Early
Based on kernel version 4.16.1. Page generated on 2018-04-09 11:53 EST. 1 ================================================================ 2 Documentation for Kdump - The kexec-based Crash Dumping Solution 3 ================================================================ 4 5 This document includes overview, setup and installation, and analysis 6 information. 7 8 Overview 9 ======== 10 11 Kdump us
From: Roland McGrath Date: Thu Jul 17 2008 - 03:37:44 EST Next message: Roland McGrath: "Re: [PATCH 2/4] ptrace children revamp" Previous message: Roland McGrath: "[PATCH 21/23] tracehook: wait_task_inactive" In reply to: Roland McGrath: "[PATCH 21/23] tracehook: wait_task_inactive" Next in thread: Alexey Dobriyan: "Re: [PATCH 23/23] /proc/PID/syscall" Messages sorted by: [ date ] [ thread ] [ sub
あけましておめでとうございます。これは「カーネル/VM Advent Calendar2011」35日目の記事です。そして2012年一発目の記事になります。 この記事ではページキャッシュミスについて書きます。ページキャッシュとDB(主にtmpfsと絡めたお話)についてはid:naoyaさんの記事*1が有名かと思います。 ディスクIOは遅いので、メモリ上にデータをキャッシュしている。それがページキャッシュである。読みたいファイルのデータがページキャッシュ上にあればディスクまで読みにいかずページキャッシュから読んで返す、これで高速化できる。 ページキャッシュは基数ツリー(radix tree)というデータ構造で管理されていて、エントリはページ単位(4096バイト)である。 だと言うことは知識として得ています。ただ「ページキャッシュ機構が透過的に働く」という表現が抽象的で書籍やWebの説明ではよ
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 といっても、きちんとした検証をしたわけではないので、あくまで「こういう環境でこういう事をやるとこうなる」という参考程度のものと理解してい頂ければ幸いです。 Linux上でプロセスは同時に何個起動できるのか 数年前にC10K問題が流行りました。これは、簡単に言うと、万のオーダーでプロセスを立ち上げる事になると、現状のOSではそれを想定した設計になっていないためまともに動かなくなる、といった問題でした。 だったら、「10万プロセス位を同時に立ち上げてみて、どうなるか試してみようぜ!」と思い、会社のエンジニアと一緒に試してみました。検証環境は、メモリ48GでCPUはHyperThreading込で24コアです。そこで動いていたOSはDebianでL
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く