この記事は Linux Advent Calendar 2020 の 12 日目です。RHEL 8.2 で Tech Preview として紹介されていた nmstate を軽く調査しました。 検証環境 CentOS 8 と nmstate-0.2.10 を利用する。 # cat /etc/redhat-release CentOS Linux release 8.2.2004 (Core…
Linuxその2 Advent Calendar 2020 の 9 日目です。 この記事は、普段ググりながら適当に使っている NetworkManager について、どういう仕組みなんだっけ?を調べなおすものです。 検証環境 CentOS 8 を利用する。 # cat /etc/redhat-release CentOS Linux re…
この記事はいくつかの言語のランタイムで glibc が利用されていることを確認し、glibc に感謝するものです。 Python3 Python3 の処理系は CPython。 # python3 -VV Python 3.6.8 (default, Nov 21 2019, 19:31:34) [GCC 8.3.1 20190507 (Red Hat 8.3.1-4)] …
次のような環境を用意し、TCP/UDP のスループットと RTT の関係性を検証する。 検証結果 次の検証結果から、TCP のスループットは RTT が増えると低下することがわかる。なお、これは CUBIC における検証結果なので、輻輳制御アルゴリズムが異なると厳密には…
ファイルがディスクに書き込まれるまでの道のりをまとめた。 stdio buffer バッファリングのモード 性能 バッファサイズのデフォルトについて 注意点 ページキャッシュ 性能 RAID コントローラキャッシュ ディスクキャッシュ 最後に stdio buffer write(2) …
ウェルノウンポートとかエフェメラルポートとかの単語は IPA の NW を勉強したときの知識としては知っているものの、正直よくわからん状態だったので調べました。 ポート番号の定義 ポート番号とその利用用途は IANA が管理している。Internet Assigned Numb…
Tracepoint とは何か? カーネルに埋め込まれたイベントに処理を追加する仕組み。 disabled のときはハンドラが実行されない。 enabledのときはハンドラが実行される。 分岐処理のコストが余分にかかるが、アセンブリレベルで最適化されている。 すでにカー…
taskset と cgroupは、あるプロセスが利用可能な CPU コアを制限できる技術。どんな違いがあるのかを調べた。なお、本記事の cgroup は cgroup v1 のこと。 taskset は sched_setaffinity システムコールを利用したコマンドラインツール。sched_setaffinity …
はじめに SYSCALL_DEFINE はシステムコールを定義するためのマクロ。引数の数によって SYSCALL_DEFINE0 から SYSCALL_DEFINE6 まであり、例えば次のように利用される。変数の型と名前が引数に別々に取られて独特な形で面食らうが、関数定義とは異なるので仕…
Uprobes とは 以前に Kprobes を調べたので(Kprobes の概要と使い方 - SIerだけど技術やりたいブログ)、そのユーザ空間版である Uprobes について調べた。まあ大体一緒。 Uprobes はユーザ空間のアプリケーションに処理を差し込むための仕組み。自身が開発し…