会社のテックブログに記事を書きました: ペパボ トラブルシュート伝 - TCP: out of memory -- consider tuning tcp_mem の dmesg から辿る 詳解 Linux net.ipv4.tcp_mem

以下の記事です。 tech.pepabo.com TCP our of memory memory pressure モード net.ipv4.tcp_mem 以上の三つの詳細を扱ったエントリです。TCP で大規模なトラフィックを扱っているサーバを扱われている場合、問題がないかどうかを確かめてみるとよいかと思い…

ピアノと楽しい駆動 - 楽しいはあなた個人でつかむもの

ピアノを弾き始めた。二ヶ月半になる。楽しい COVID-19 の緊急事態宣言で(あるいはその前から) 自宅での時間を持て余して、何か新しい趣味に手を伸ばした人は、相当の数いるだろう。私もその1人だ。 二ヶ月半前、最初は Handel の HWV 440 1. Allmenand の右…

会社のテックブログに記事を書きました : ペパボ トラブルシュート伝 - node プロセスの general protection fault を追う - abort(3) の意外な実装

以下のエントリです。 tech.pepabo.com テーマがテーマなだけに「せいぜい 10ブックマークくらいかなぁと」思ったてけど、もうちょっと増えたのでニコニコ。 今後も、いままで本ブログに書いていたような Linux の低いレイヤでのトラブルシューティングや、…

CD を処分した

CD を処分 (売却した) 押入れに眠っていた大量の CD をせっせとインポートして、自宅待機・自宅勤務の空き時間を使い3ヶ月ほどかけてようやく全作業 (インポート、盤の掃除、箱詰め、業者へ送り出す) を終えた。 扱った CD のほとんどが、音楽サブスクリプシ…

Linux Kernel: cgroup 削除後も残り続ける slab キャッシュ についての調べ物

タイトルの通りで、コンテナの生成と削除が頻繁におこなわれているホストで、 cgroup 削除後も特定の slab キャッシュ ( + sysfs のファイル = kobject ) が残るという現象を調べていました 環境 vagrant@bionic:~$ uname -a Linux bionic 5.4.1-050401-gene…

Linux Kernel: cgroup, sysfs, kobject, uevent についての調べ物 - (3) slub_memcg_sysfs ブートパラメータについて

以下のエントリの続きです hiboma.hatenadiary.jp hiboma.hatenadiary.jp cgroup 内で生成される slab キャッシュに対応する sysfs のファイルが /sys/kernel/slab/<キャッシュの名前>/cgroup/... 以下に生成されることを追っていました。 kernel のブートパ…

Linux Kernel: cgroup, sysfs, kobject, uevent についての調べ物 - (2) 実験編

前回のエントリの続きです hiboma.hatenadiary.jp 実験用のカーネルモジュールを作り、cgroup v1 のメモリコントローラーで制限をかけた状態で sysfs の kobject (slab) が生成されるかどうかを確かめます 実験用のカーネルモジュール 適当な名前の slab キ…

Linux Kernel: cgroup, sysfs, kobject, uevent についての調べ物

cgroup v1 + memory コントローラーで制限を課した際に、sysfs のファイル = kboject が生成/削除されるタイミングやその仕組みを調べていました 例えば下記のような sysfs のファイルです /sys/kernel/slab/dentry/cgroup/dentry(979:@hogehoge)/objects /s…

Linux Kernel: PSI - Pressure Stall Information /proc/pressure/memory で メモリのストールを観察する

下記の続きエントリです hiboma.hatenadiary.jp 今回は PSI - Pressure Stall Information の /proc/pressure/memory についてのエントリ PSI を使うと CPU, メモリ, IO で stall した時間(割合) を計測できるってなことですが、どういった実装で「memory st…

cgroup v1 の kmem.limit_in_bytes は deprecated and will be removed

5.4-rc7 で cgroup v1 の memory.kmem.limit_in_bytes を触っていたら下記のメッセージに遭遇した [ 5627.054183] kmem.limit_in_bytes is deprecated and will be removed. Please report your usecase to linux-mm@kvack.org if you depend on this functi…

松本〜安曇野〜木崎湖〜白馬 🚴‍♂️

11/2(土) 〜11/4(月) 二泊三日の松本旅行の2日目 松本から安曇野〜木崎湖〜白馬まで走った. 後半は天気が崩れてしまった ちょいと消化不良だったので、来年またリベンジだな 走行距離 79km 獲得標高 977m

strace -c を使う際に -w オプションを使い分けよう

strace を使う際に -c をつけると、システムコール呼び出しの統計を取れる vagrant@xenial:~$ strace -c find >/dev/null % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 47.43 0.03…

Linux Kernel: PSI - Pressure Stall Information /proc/pressure/io で IO 待ちを観察する

www.kernel.org Linux Kernel 4.20 で導入された PSI - Pressure Stall Information の /proc/pressure/io について気になることがあったので調べていました イントロダクション PSI を使うと CPU, メモリ, IO で stall した時間(割合) を計測できるってなこ…

小淵沢〜霧ヶ峰〜松本 🚴‍♂️ (1)

11/2(土) 〜11/4(月) で松本に二泊三日して、あちこちの山を走ってきた。その1日目 小渕沢から霧ヶ峰にのぼって松本まで走った. 山梨・長野は秋も最高だ 走行距離 97km 獲得標高 1668m

Linux Kernel: cgroup v1 の制限下で slab_out_of_memory を発生させて観察する

イントロダクション cgroup v1 の memory コントローラーで memory.kmem.limit_in_bytes を制限すると slab_out_of_memory を起こすことができるので、それを調べたり観察したエントリです 不具合・バグの調査ではないです ソースやコマンドの結果を大量に貼…

Linux Kernel: カーネルモードで CPU 掴んでるタスクのバックトレースをとりたい

表題の通りなのだが、結論からいうと sysrq-trigger を使うのがいいみたい 「特定のタスクがクリティカルセクションを実行していてボトルネックとなっているが、どのタスクなのか分からない」という事象を正確に観測したくて、このテーマで調べました カーネ…

Linux Kernel: rtnl_mutex を長時間 ロックして刺さった状態を観察する (2) with bpftrace

前回の続き hiboma.hatenadiary.jp rtnl_mutex でロックを獲得してクリティカルセクションを実行中のタスクを何らかの方法でトレースしたり、時間を計測したいと思って、あれこれ調べたり、試行錯誤していた 最終的に bpftrace でがちゃがちゃと試すまでを記…

八ヶ岳〜清里〜野辺山〜軽井沢 🚴‍♀️

ちょっと前に書いて出し忘れていた 10月5日(土) の記録 甲府〜八ヶ岳〜清里〜野辺山〜軽井沢のコースを走った. 今年の5月にも同じ場所を走ったのだが途中のコースをかえて楽しんだ hiboma.hatenadiary.jp 台風でたいへんなことになった千曲川沿いも走ってた…

strace 5.2 で追加された -z -Z オプション

strace.io strace 5.2 で追加された -z -Z オプションが面白かったので書いておきます (注意: この記事を書いた時点では 5.3 が最新です ) -Z 失敗したシステムコールだけフィルターしてくれるオプション root@xenial:~/strace-5.3# ./strace -Z ls >/dev/nu…

Linux Kernel: rtnl_mutex を長時間 ロックして刺さった状態を観察する

Linux Kernel で struct net_device や Routing Netlink の処理を排他制御する mutex である rtnl_mutex を任意の時間 ロックするカーネルモジュールを作成して、rtnl_mutex のロックがユーザランドのプロセスやカーネルスレッド等にどういった影響を及ぼす…

Proof of Concept: Linux カーネルモジュールで特定のディレクトリ以下の dentry キャッシュを破棄する (2)

hiboma.hatenadiary.jp 前回の続きのエントリです カーネルのバージョンを変えつつ ソースを読み込んでみたところ理解が進んだ点が2つあったのでまとめます ファイルシステム(マウントポイント?) を remount すると dentry を破棄できる evict_inodes() を…

Proof of Concept: Linux カーネルモジュールで特定のディレクトリ以下の dentry キャッシュを破棄する

動機 社内の同僚がカーネル周りの問題を調べていて slab キャッシュ ( = dentry, inode ) に関する内容を追っていた。 その問題自体の内容は、アレがコレで、伏せておく。 その問題をみているうちに 「特定のディレクトリ以下の slab キャッシュ = dentry / …

軽井沢〜嬬恋村〜菅平高原〜長野市 (1) 🚴‍♀️

少し時間が経ったが 9/15 (日) の記録. 群馬の横川から出走、碓氷峠を越えて軽井沢に入り、浅間山〜嬬恋村〜菅平高原と山岳なコースを経て、長野市まで走った 走行距離 104km 獲得標高 1871m 長野市に一泊して翌日も走り、二日間かけて浅間山をぐるっと取り…

蓼科〜麦草峠〜練馬 🚴‍♀️

長野八ヶ岳の西側に位置する蓼科高原からスタートし、麦草峠 (2172m) を超えて練馬区の自宅まで走った 出走直後は高崎まで走り輪行で帰るプランでいたのだが、調子に乗っちゃってなんだかんだ家まで自走した. 走行距離 221km, 獲得標高 2828m (途中でサイコ…

松本〜安曇野〜甲府 (2) 🚴‍♂️

だいぶ時間が経ったが 8/25 (日) の日記. 旅行の2日目の記録 hiboma.hatenadiary.jp 松本から出発して安曇野を巡り、その後は甲府まで南下して二日間の旅程を終えた 好天にも恵まれ長野と山梨の自然をエンジョイした. 走行距離 149km 獲得標高 1368m . 下り…

甲府〜松本 (1) 🚴‍♂️

8/24(土) 甲府まで輪行、松本まで走り一泊. 2日間の旅程の1日目. 走行距離 105km 獲得標高 1038m で終わり. 数値だけみると控えめなんだけど 暑かったからしんどかったなぁ ...

小田原〜河津〜天城越え〜修善寺〜三島 🚴‍♀️

8/18(土) の記録. 小田原から河津まで南下、天城トンネルで 天城越え をして、さらに 伊豆市〜三島まで走った Garmin を途中で止めてしまったので、記録が2つに別れている 灼熱の天気で削られて、河津までのアップダウンで削られて、なかなか大変な1日だっ…

甲斐大和駅〜富士川〜沼津・三島 🚴‍♀️

6/16 (日) 甲斐大和駅から南下、富士川沿いをひたすら走って駿河湾に出て、三島まで走った 山から海に出るルートなので基本的に下り + 前日の荒天を引きずって追い風基調でペースよく快適に走れた

渋川〜金精峠〜日光〜宇都宮 🚴‍♂️

渋川から金精峠を越えて、日光〜宇都宮まで走ってきた 前々から走ってみたいコースを走破して満足. 標高 1800m 台までのぼったのもこれが初で満足. 走行距離 177km (輪行前後の +28km 含む ) 獲得標高 2020m

高崎〜二度上峠〜北軽井沢〜草津温泉 ♨︎ 🚴‍♂️

5/19(日) 高崎まで輪行、榛名山のふもとを南西にぬけて二度上峠を越え、北軽井沢経由で草津温泉まで足を伸ばした 5月のわりに天気はイマイチだったけど、東京の西側の山とは全然違う群馬の山をエンジョイできた. グンマ〜 走行距離 169km (輪行をするまでの…