タグ

Linuxとkernelに関するtri-starのブックマーク (17)

  • net.ipv4.tcp_tw_recycle は廃止されました ― その危険性を理解する - Qiita

    Disclaimer 私はネットワークの勉強もちゃんとしたことないし、Linux のソース読むのもはじめてな素人です。 何かおかしなところなどあれば、遠慮なくコメント欄でまさかりをお願いいたします。 ソースコードの引用に関して 文中で Linux のコード/ドキュメントを引用している箇所がありますが、すべてタグ v4.11 のものです。また、日語のコメント・翻訳文は筆者が入れたものです。 TL; DR Linux のカーネルパラメータ net.ipv4.tcp_tw_recycle は、バージョン4.12から廃止されました。 今後はこの設定は行わないようにしましょう(というかできません)。 一方、net.ipv4.tcp_tw_reuse は安全であり、引き続き利用できます。 …というだけの話なのですが、自分用にメモがてら経緯・背景などを記録しておきます。 なんで気がついたか このパラ

    net.ipv4.tcp_tw_recycle は廃止されました ― その危険性を理解する - Qiita
  • 【読解入門】Linuxカーネル (概要編) - Qiita

    余談ですが、東芝や日立が中心となって取り組んでいるCivil Infrastructure ProjectというThe Linux Foundation傘下のコラボラティブプロジェクトがあり、このプロジェクトではSLTS(Super Long Term Support)を実現しています。 交通機関や発電所などの社会基盤では十年以上サポートを必要とする一方で、影響範囲が大きいカーネルの版数を上げることは現実的に困難です。こういった市場に対してCIPでは十年以上の長期サポート(不具合改修パッチのバックポート)を行います。 ※LTSやCIPのアプローチ vs CI/CDのアプローチ、結局は製品形態によってケースバイケースだと思いますが、私は非常に興味があります。 Linuxカーネルのソースコードの読み方 始めに述べておきますが、読み方に正解はないと思います。 私は、下記の2点を意識して読みます。

    【読解入門】Linuxカーネル (概要編) - Qiita
  • Linuxのdrop_cachesにwriteした時の動きを追う - Qiita

    はじめに drop_cachesにwriteしてみて、その前後での/proc/meminfoやfree(1)コマンド結果を観察するような記事はたくさんあるけど、drop_cachesにwriteしたときに何をやっているのかを詳しく解説したような記事が全然見つからなかったので、自分で調べてみることにした。 ・・・という間違いを犯して泥沼にハマり貴重な休みを潰してしまったとあるエンジニアの活動を記録した記事である(たぶん) なお、Linux-4.12くらい、procps-ng-3.3.12くらいを見ています。 ページキャッシュの概要 概要 そもそも通常は、あえてdrop_cachesに値を書いて操作する必要が出るような場面はないと思われる。敷いていえば、ページキャッシュに乗ってる場合と乗っていない場合とでのベンチマークをしたいときくらい? まれに/proc/meminfoのMemFreeが少な

    Linuxのdrop_cachesにwriteした時の動きを追う - Qiita
  • サーバーのメモリが少しずつ圧迫される原因と対策を調べてみた - Qiita

    サーバーのメモリが slab_cache で占有される サーバーのメモリが数日で slab_cache に占有されるので原因と対策を調査した。 メモリの使用状況の調査 meminfo meminfo を見ると Slab のメモリ使用量が確認できる。 SReclaimable と SUnreclaim を足すと Slab になる。 $ cat /proc/meminfo | grep "Slab\|claim" Slab: 1654520 kB SReclaimable: 1631304 kB SUnreclaim: 23216 kB slabtop slabtop コマンドをたたくと top コマンドのように Slab の内訳が表示される。 dentry が最も多いようだ。 --once は1回出力で終了するオプション。 --sort=c はキャッシュサイズ順にソートするオプション。 sl

    サーバーのメモリが少しずつ圧迫される原因と対策を調べてみた - Qiita
    tri-star
    tri-star 2016/07/07
    slabキャッシュについて
  • HUPシグナルとnohupとdisownとバック/フォアグラウンドジョブの理解 - Qiita

    人に教えるには自分が完全に理解していなければ、ということで調査・検証した結果。 動機 シェルからバックグラウンドで処理を行うには? nohup コマンド実行 & を使う。 コマンド実行 => Ctrl-Z => disown を使う。 定番は前者だが、両者の違いは何なのか? disownとは一体何をするのか? この機会に調べてみた。 結果のまとめ 長くなったので最初にまとめを。しかしまとめも長い。 (後自分が読む時に一番下にスクロールしたくないので…) ジョブテーブル シェルはセッションに紐づくジョブテーブルを持っている。 バックグラウンドジョブを登録している。 (フォアグラウンドジョブは未確認。ソースを読むしかないか) jobsビルトインコマンド で一覧を参照可能。 ここに見える限り、シェルのexit時にSIGHUPを送る。 この一覧にない場合、exit時にSIGHUPは送らない。 シェ

    HUPシグナルとnohupとdisownとバック/フォアグラウンドジョブの理解 - Qiita
    tri-star
    tri-star 2015/06/17
    Linux - HUPシグナルとnohupとdisownとバック/フォアグラウンドジョブの理解 - Qiita
  • SystemTap Tapset Reference Manual

    This documentation is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License f

    tri-star
    tri-star 2015/03/23
    Systemtapの関数などについてのマニュアル。
  • socket()システムコールがソケットを確保するまで - HDIF?

    Linuxのネットワークインタフェースに採用されている、BSDソケットですが、Where is the socket()?を参考に、socket()システムコールの深追いをしました。細かいところでも間違っていたら突っ込んでください。カーネルのバージョンは、2.6.20-16-genericです。 socktest.c #include <sys/socket.h> int main(int argc, char** argv){ int res = socket(AF_INET, SOCK_STREAM, 0); } 単純にソケットを作成するだけのプログラムです。 $ gcc socktest.c $ nm a.out ・・・ 08049588 d p.5756 U socket@@GLIBC_2.0 $socket()は、glibc2.0のライブラリ関数であることがわかります。Linux

    socket()システムコールがソケットを確保するまで - HDIF?
    tri-star
    tri-star 2015/03/16
    ソケットが作成される内側の話
  • Linux 4.0のリリース候補版が登場。3.20か4.0かを選ぶ投票の結果を受け、Linus Torvalds氏がバージョン4で行くと

    「大きい番号は魅力的だからv3.20へ進むか、あるいは番号をリセットしてv4.0にするか、どっちがいい?」。約10日前の2月13に、Linus Torvalds氏は次のLinuxのバージョン番号についてGoogle+に質問を投稿し、投票を呼びかけました。 2.6.39のようなバージョン番号を避けたかった Linux 4.0へとLinuxのメジャーバージョン番号を大きくすることは、以前からTorvalds氏が個人的な希望として示していたことでした。Torvalds氏は投票を呼びかける投稿の中でも「I don't want another 2.6.39」と書いています。これは、2.6.39のようにバージョン番号の下位の細かい数字が増えていくことで、バージョン番号が分かりにくくなることを敬遠したい、ということを示しています。 そして現在のLinuxがバージョン3になり下位の数字が3.19から次に

    Linux 4.0のリリース候補版が登場。3.20か4.0かを選ぶ投票の結果を受け、Linus Torvalds氏がバージョン4で行くと
    tri-star
    tri-star 2015/02/23
    個人的には、メジャーバージョンアップは"互換性のない変更がある"ことを前提にして欲しい。今回のバージョンアップも、何だかんだ言って互換性に影響のある要素は含んでいるんだろうか。
  • process-book

    この文書はなんですか? この文書は*nix系のシステムにおけるプロセスやシグナルなどについて説明することを目的に書かれました。「プロセスとかよくわかってないからちゃんと知りたいな」みたいなひとたちが想定読者です。 書いているあいだは gist で管理されていたのですが、ボリュームが大きくなったので github で管理するように変えました。 目次 導入 プロセスの生成 プロセスとファイル入出力 ファイルディスクリプタ preforkサーバーを作ってみよう ゾンビプロセスと孤児プロセス シグナルとkill プロセスグループとフォアグランドプロセス epub と pdf epub化したもの、pdf化したものが release ディレクトリに入っています。thanks to mitukiii & moznion! ライセンス この 作品 は クリエイティブ・コモンズ 表示 - 継承 3.0 非移

  • 割り込み処理

    2012年02月07日 情報科学類 オペレーティングシステム II 筑波大学 システム情報工学研究科 コンピュータサイエンス専攻, 電子・情報工学系 新城 靖 <yas@is.tsukuba.ac.jp> このページは、次の URL にあります。 http://www.coins.tsukuba.ac.jp/~yas/coins/os2-2011/2012-02-07 あるいは、次のページから手繰っていくこともできます。 http://www.coins.tsukuba.ac.jp/~yas/ http://www.cs.tsukuba.ac.jp/~yas/ ■今日の大事な話 割り込みコントローラ(ハードウェア) IRQ 割り込みの前半部分と後半部分 ■割り込み ◆割り込みの必要性 デバイス(ディスク、ネットワーク、キーボード、マウス、)は、CPU と比 較すると遅い。 デバイスに要求を

    割り込み処理
  • Understanding SLAB in Linux Kernel

    Slab allocation is a memory management mechanism intended for the efficient memory allocation of kernel objects which displays the desirable property of eliminating fragmentation caused by allocations and deallocations. Read less

    Understanding SLAB in Linux Kernel
  • システムコール、プロセスとtask_struct構造体

    2013年12月26日 情報科学類 オペレーティングシステム II 筑波大学 システム情報工学研究科 コンピュータサイエンス専攻, 電子・情報工学系 新城 靖 <yas@cs.tsukuba.ac.jp> このページは、次の URL にあります。 http://www.coins.tsukuba.ac.jp/~yas/coins/os2-2013/2013-12-26 あるいは、次のページから手繰っていくこともできます。 http://www.coins.tsukuba.ac.jp/~yas/ http://www.cs.tsukuba.ac.jp/~yas/ ■今日の大事な話 システム・コールとライブラリの共通点と相違点 トラップ命令 strace コマンド プロセスの構造 PID (process identifier), UID, groups task_struct 構造体 状態(

    システムコール、プロセスとtask_struct構造体
  • Btrfsの基礎 part1 機能編

    This document is the basic introduction to Btrfs, the next generation linux file system. It covers Btrfs's basic concept and important features. It contains many figures to make it easy for readers to understand this file system.Read less

    Btrfsの基礎 part1 機能編
  • Linuxのプロセススケジューラ(Reading the Linux process scheduler)

    2016年2月20日(金)のZynq Ultrasclae+ MPSoC 勉強会で使った資料です。 追記) 2016.05.08 公式ARM Trusted Firmwareのサイトに、Zynq UltraScale+ MPSoCの実装が追加されていていることを明記した This is the material I used at Zynq Ultrasclae + MPSoC SIG on 20th February (Friday). Addendum) 2016.05.08 We stated that the implementation of Zynq UltraScale + MPSoC was added to the official ARM Trusted Firmware site.

    Linuxのプロセススケジューラ(Reading the Linux process scheduler)
  • セキュリティアップデートは再起動が不要な時代へ~LinuxにおけるDynamic Kernel Patchingとは~

    キーワードで探す カテゴリで探す 業界トレンド/展望 技術トレンド/展望 事例 サービスで探す コンサルティング CRMSalesforce) ERP(SAP/Biz∫) 顧客接点・決済 カーボンニュートラル SCM・ロジスティクス 電子申請 データ&インテリジェンス 生成AI アプリケーション開発・管理 データスペース ブロックチェーン 量子コンピュータ・イジングマシン デジタルツイン IoT ロボティクス・RPA クラウド ネットワーク データセンター サイバーセキュリティ アウトソーシング 業種で探す 金融 官公庁・自治体 医療・ヘルスケア 防災・レジリエンス 品 流通・小売 モビリティ 製薬・ライフサイエンス 農・農業 製造 通信・放送 電力・ガス・水道 建設・不動産 個人のお客様向け 教育 トピックで探す Foresight Day サステナビリティ キーワードで探す カテ

    セキュリティアップデートは再起動が不要な時代へ~LinuxにおけるDynamic Kernel Patchingとは~
  • ウェブリブログ:サービスは終了しました。

    「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 BIGLOBEのサービス一覧

    ウェブリブログ:サービスは終了しました。
  • gettimeofday(2) は VDSO によりユーザー空間で実行される - ablog

    gettimeofday(2) はシステムコールなので、大量に発行すると%sysが上がると思っていたが、VDSOという仕組みでユーザー空間で実行されるので%userが上がるらしい。時刻取得みたいなちょっとした処理でシステムコールを発行してコンテキストスイッチするのって無駄が多いなって思ってたけど、そこはちゃんと考えられているんですね。 多くのアプリケーション負荷 (特にデータベースおよび財務サービスアプリケーション) は gettimeofday または類似の時間機能コールを非常に頻繁に実行します。 このコールの効率性を最適化すると、 大きな利点があります。 VDSO (Virtual Dynamic Shared Object) は、 ユーザースペースのアプリケーションがシステムコールよりも少ないオーバーヘッドで一部のカーネルアクションを実行できるようにする共有ライブラリです。 多くの場

    gettimeofday(2) は VDSO によりユーザー空間で実行される - ablog
  • 1