タグ

Linuxに関するMonMonMonのブックマーク (234)

  • Linuxカーネルパラメータのチューニング&設計 - Qiita

    Linuxカーネルパラメータのチューニング&設計 0.目的 【カーネルパラメータのチューニング】を修得する目的は、サーバの特性を理解し、それぞれに合ったカーネルパラメータのチューニングすることでリソースの有効活用をできるようになることを目的とし、私個人の経験を元にした見解を以下の記事に掲載します。 1.最初に サーバには、それぞれ必要なリソース特性があり、それに合わせたカーネルパラメータのチューニングが必要となります。 世の中の流れはオンプレよりクラウドに移行してはいるので、カーネルパラメータのチューニングよりスケールアップなりスケールアウトするなりの対応をすべきなのでしょう。 ですが、カーネルパラメータのチューニングを知らないとどちらを選択すべきかも理解しずらいと思いますので軽率には出来きません。(待ち行列理論もしらないといけませんが) また、最近のLinuxはデフォルト値が大きくなって

    Linuxカーネルパラメータのチューニング&設計 - Qiita
  • 絵で見てわかるLinuxカーネルの仕組み | 翔泳社

    ハードとソフトの世界をつなぐ OSの根幹となる仕組みを理解しよう OSにおいて、カーネルとはその名のとおり「核となるコンポーネント」であり、記憶領域やファイルシステムの管理、プロセス制御、スケジューリング、ネットワーキングなど、ハードウェア制御に関わる幅広い機能を担っています。 Webやエンタープライズ、組み込みに至るまで、世界中のあらゆるところで、Linuxを基OSとするシステムが稼働しています。Linuxはオープンソースソフトウェアであり、誰でも広くアクセスできることがその発展を支える特徴の1つといえるでしょう。しかし、その土台となるカーネルに限ってみても、ソースコードを読み込んで理解するにはあまりにも大規模かつ複雑な存在です。そのため、Linuxカーネルの役割や仕組みを理解している人が少ないのもまた事実なのです。 ソフトウェアの開発・利用において、カーネルのような根幹部分について理

    絵で見てわかるLinuxカーネルの仕組み | 翔泳社
  • linux でバイナリを逆アセンブルする方法 - pyopyopyo - Linuxとかプログラミングの覚え書き -

    linux でプログラムをdisassembleする方法のメモです。 逆アセンブルする方法(その1) 定番のdisassembler、objdump コマンドを使います。 $ objdump -d バイナリファイル > dump.txt objdump コマンドは、大抵 binutils パッケージに入ってます。 通常のプログラムはもちろん、共有ライブラリ *.so とか $ objdump -d  /lib/libc.so.6 カーネルモジュール *.ko も逆アセンブルできます。 $ objdump -d  /lib/modules/2.6.33-orig/kernel/arch/x86/oprofile/oprofile.ko 逆アセンブルする方法(その2) dissy という objdump のGUIがあります。それなりに使えます。 http://code.google.com/p

    linux でバイナリを逆アセンブルする方法 - pyopyopyo - Linuxとかプログラミングの覚え書き -
  • FUSE Passthrough Support May Land For Linux 6.9 To Help Boost I/O Performance - Phoronix

    FUSE Passthrough Support May Land For Linux 6.9 To Help Boost I/O Performance Written by Michael Larabel in Linux Storage on 28 February 2024 at 09:36 AM EST. 23 Comments Being worked on and off for several years has been FUSE read/write passthrough support for improving the performance of File-Systems in User-Space by avoiding the daemon overhead on a per-file basis where read/write operations ar

    FUSE Passthrough Support May Land For Linux 6.9 To Help Boost I/O Performance - Phoronix
  • CPU Utilization is Wrong

    Recent posts: 22 Jul 2024 » No More Blue Fridays 24 Mar 2024 » Linux Crisis Tools 17 Mar 2024 » The Return of the Frame Pointers 10 Mar 2024 » eBPF Documentary 28 Apr 2023 » eBPF Observability Tools Are Not Security Tools 01 Mar 2023 » USENIX SREcon APAC 2022: Computing Performance: What's on the Horizon 17 Feb 2023 » USENIX SREcon APAC 2023: CFP 02 May 2022 » Brendan@Intel.com 15 Apr 2022 » Netfl

  • Linux カーネルをバイパスして TCP 通信を 10 倍速くする | IIJ Engineers Blog

    IIJ 2023 TECHアドベントカレンダー 12/16の記事です】 この記事について 背景:TCP はコンピュータネットワークの通信において広く利用されているプロトコル・標準化された通信規格です。コンピュータは TCP/IP スタックと呼ばれるようなソフトウェアを実行することで、定められた規格に則って通信を行います。汎用 OS 環境では、TCP/IP スタックは多くの場合、カーネル空間に OS 機能の一部として実装されています。 課題:通信に関するソフトウェアの研究コミュニティでは、そのようなカーネル空間に実装されている TCP/IP スタックは、近年の高速な NIC の性能を十分に引き出すことが難しいという課題が指摘されてきました。 テクニックの紹介:当記事では、近年の研究コミュニティにおいて比較的一般的な高速化テクニックとされている「カーネルをバイパス(迂回)して TCP 通信を

    Linux カーネルをバイパスして TCP 通信を 10 倍速くする | IIJ Engineers Blog
  • systemdの思想と機能 ―Linuxを支えるシステム管理のためのソフトウェアスイート

    2023年12月21日紙版発売 2023年12月21日電子版発売 森若和雄 著 B5変形判/216ページ 定価3,080円(体2,800円+税10%) ISBN 978-4-297-13893-6 Gihyo Direct Amazon 楽天ブックス 丸善ジュンク堂書店 ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto このの概要 systemd(システムディー)はLinuxの基的な構成要素を提供するソフトウェア群です。システムやサービスの管理機能を中心として,ハードウェアの管理,ログの管理などを行う多数の独立したソフトウェアからなっています。 Linuxでシステム管理を行うときにはsystemdの知識が必要になります。systemdに関するオンラインマニュアルなどは充実しているものの,sy

    systemdの思想と機能 ―Linuxを支えるシステム管理のためのソフトウェアスイート
  • Efficient Linuxコマンドライン

    Linuxスキルをレベルアップする実用的な実践書。書では、コマンドを組み合わせて複雑なコマンドを作成することで、手動で行われているタスクを自動化するための方法を学びます。具体的には、パスワードの管理、大量のテストファイルの生成、テキストファイルを変換してデータベースのように扱う方法など、現実的なビジネスの問題を解決する方法を明らかにします。単なるテクニックではなく、背後で何が行われているかについても学べるので、Linuxのシェルに対する理解が深まります。それと同時に、Linuxコマンドに関するさらに上級レベルの知識とテクニックが身につきます。 賞賛の声 監訳者まえがき まえがき 第I部 主要な概念 1章 コマンドの組み合わせ 1.1 入力、出力、パイプ 1.2 コマンドラインに取り掛かるための6個のコマンド 1.2.1 コマンド① wc 1.2.2 コマンド② head 1.2.3 コマ

    Efficient Linuxコマンドライン
  • Linux コンテナのリブートとセキュリティ / SosaiLT 38th

    総関西サイバーセキュリティLT大会(第38回)の LT 資料です。 参考となる情報にはPDF中からリンクをしていますが、資料中のリンクは Speaker Deck 上ではクリックできないので PDF をダウンロードしてご覧ください。

    Linux コンテナのリブートとセキュリティ / SosaiLT 38th
  • 大容量のストレージを持つサーバーの奇妙なメモリ使用量の増加原因を究明した話 #anacron #mlocate #slab | 株式会社ヌーラボ(Nulab inc.)

    Backlog課の@vvatanabeです。我々Gitチームの毎朝のルーティンの一つに、 「前日の各種アプリケーション・AWSリソースのアラートやメトリクスを把握する」 と言うものがあります。 これは、SREの@maaaato氏がGitチームにエンベッドされてから毎朝欠かさずやっている習慣です。 先日開催された #NuCon2022 の彼のセッション「チームでサービスの運用をうまく支えていくための取り組み ~SREと共に~」でも、継続している取り組みの一つとして紹介しています。 この取り組みのおかげで、実際に問題を検知して改善に繋げたケースも多々あります。今回はその中から一つ、大容量のストレージを持つサーバーの奇妙なメモリ使用量の増加原因を究明して改善に繋げた話をご紹介します。 TL;DR Amazon Linux 2のようなRHEL/CentOS系のディストリビューションに大量のファイル

    大容量のストレージを持つサーバーの奇妙なメモリ使用量の増加原因を究明した話 #anacron #mlocate #slab | 株式会社ヌーラボ(Nulab inc.)
  • Linux Storage Stack Diagram - Thomas-Krenn-Wiki-en

    The Linux Storage Stack Diagram shows the layout of the the Linux storage stack. Downloads Diagram for Linux Kernel 6.9 Linux Storage Stack Diagram v6.9): Linux I/O Stack Diagram v6.2 (20230309): ZIP (includes .drawio and .svg) PDF PNG Changelog: dm-vdo added (Kernel 6.9) ext2 removed (Kernel 6.9, ext2 wird nun so wie ext3 auch durch den ext4 Code unterstützt) bcachefs added (Kernel 6.7) EROFS add

  • eBPFやLD_PRELOADを利用した共有ライブラリの関数フック - TIER IV Tech Blog

    こんにちは、ティアフォーでパートタイムエンジニアをしている石川です。 記事では、楽に「動的ライブラリ(及び実行バイナリ)の特定の関数をフックして何かしらの処理をする」手法について紹介していきます。 この記事は、同じくパートタイムエンジニアの西村さんによる作業の成果を元にして、石川が執筆したものです。ソースコードや図のいくつかも西村さんによる貢献です。 また、ティアフォーでは「自動運転の民主化」をともに実現していく、学生パートタイムエンジニアを常時募集しています。自動運転を実現するためには、Softwareに関してはOSからMiddlewareそしてApplicationに至るまで、Hardwareに関してはSensorからECUそして車両に至るまで異なるスキルを持つ様々な人々が不可欠です。もしご興味があれば以下のページからコンタクトいただければと思います。 https://tier4.j

    eBPFやLD_PRELOADを利用した共有ライブラリの関数フック - TIER IV Tech Blog
  • Linux関連の最新状況にキャッチアップするための本「入門モダンLinux」

    以下イベントのプレゼン資料です。 https://forkwell.connpass.com/event/279042/

    Linux関連の最新状況にキャッチアップするための本「入門モダンLinux」
  • Linuxで動くNICドライバの開発をしている - BYB

    概要 おことわり 流れ [前半]:NICドライバ実装に必要な作業 insmod/rmmod 時のエントリポイントとなる関数を用意 pci_diriver構造体を定義して、ドライバを登録 net_deviceとして登録 net_deviceハンドラ関数を用意してハンドラテーブルに登録 割り込みの定義(未動作確認) MMIOレジスタを適切に初期化して、実際にパケットを処理する部分を書いていく(未実装) ハンドラとスケジューリング [後半]:Linuxカーネル関連で詰まったところ insmod時のカーネルクラッシュ インターフェースのstateがUPにならない問題 ソースコード さいごに 概要 Linuxで動くe1000eドライバを開発しようとしており、ドライバと紐付けたNICのstateがupになるところまで進めました。 個人的に忙しくなった都合で一旦ここでプロジェクトを止めるため、備忘録とし

  • デバッガと和解せよ

    2022/08/28 Kernel/VM探検隊online part5 (https://kernelvm.connpass.com/event/256248/) の @nullpo_head (https://twitter.com/nullpo_head) の発表資料です。 ptraceを使っ…

    デバッガと和解せよ
  • Linux におけるファイル I/O の基礎

    すべてがファイルというモデルの Linux (Unix) において、ファイル I/O (以降単に I/O と書く) を知っておいて損はない。 この記事では、基的なファイルと関連する I/O について、対応する Linux システムコールも併せて説明する。 次回はこれらを実際に Linux 上で確認する予定。 ファイル Unix におけるファイルとは、普通「通常ファイル」のことを指し、バイトがリニアに並んだデータ (byte stream) のことである。 ファイル内のバイトは読み書きが可能で、指定されたバイトから開始する。この開始バイトはファイル内の「位置」と考えることができ、ファイルポジションまたはファイルオフセットという。 通常ファイルとは別に、スペシャルファイルというファイルとして表現されたカーネルオブジェクトがある。Linux では、スペシャルファイルとしてデバイスノード・名前付

    Linux におけるファイル I/O の基礎
  • おすすめ.ssh/config設定 - 2023-04-03 - ククログ

    はじめに つい先日、GitHubのRSA SSHホスト鍵が突如差し替えられるという一件がありました。 We updated our RSA SSH host key 詳細に関しては識者による解説に委ねますが、ちょうどタイムリーな話題だったので、SSHをより安全に利用するという観点でおすすめ設定についていくつか紹介します。 なお、クリアコードではSSH以外にもおすすめzsh設定やおすすめEmacs設定という記事も公開しているので参考にしてみてください。 2023年5月11日更新:StrictHostKeyCheckingをyesにする場合の安全なknown_hostsの更新方法について追記しました。 おすすめ設定について クリアコードでは、.ssh/configのおすすめ設定を https://gitlab.com/clear-code/ssh.d にて公開しています。 これは、社内で.ss

    おすすめ.ssh/config設定 - 2023-04-03 - ククログ
  • LinuxをQEMUで動かす(Armv8-A中心)

    2023-03-26 uRamdiskの作成方法について追記 最近、低レイヤー開発のため、Linuxをいろいろな方法でQEMU上で動かす必要があり、苦戦することも多かったのでメモ代わりにまとめます。 自分はArmv8-A環境で動かすことが多いので、そちらを前提とした方法を中心に書いていきますが、他のアーキテクチャでも使える部分は多いかと思います。 とりあえず、動くことは確認していますが、最適な方法であるかは自信がない部分も多いので、もし改善の指摘とかあればコメントしていただけると幸いです。 細かいツールの使い方は書いていくときりがないので省略します。 Linuxをビルドする 自前のLinuxをQEMU用にビルドするにはLinuxのソースにすでに用意されているconfigを使ってしまうのが楽です。 arch/arm64/configsの中にすでに用意されたconfigが存在している場合、ma

    LinuxをQEMUで動かす(Armv8-A中心)
  • Linux でのハングタスクについて - 赤帽エンジニアブログ

    Red Hat でコンサルタントをしている菅原と申します。 この記事では、意外とあまり説明されていないような気がする Linux システムで発生するハングタスクについて少し説明したいと思います。現場のシステムでもハングタスク検知の設定がされていることが多いと思いますが、ハングタスクとは何なのかを正しくご理解いただくことで、ハングタスク検知を行う目的が明確になること、また、実際の障害事例もご紹介することで、通常あまりハングタスクと関連づけて考えないような設定でもハングタスク発生につながる場合があることを知っていただき、少しでもシステム管理や障害の理解、障害対応などのお役に立てれば幸いです。 なお、この記事では RHEL のみを対象に書いていますが、他の Linux ディストリビューションにも適用される内容と思います。 ハングタスク (hung tasks) とは ハングタスクとは読んで字のご

    Linux でのハングタスクについて - 赤帽エンジニアブログ
  • 名前解決サービスを自作する - Qiita

    はじめに 名前解決サービスって? 皆さんが今お使いのネットワーク(LAN)には、「example」という名前のPCは接続されているでしょうか? 臨時使用の仮想マシンを作る際に foo とか hoge の様な名前のマシンを構築することはあるかもしれませんが、普通はそんなコンピューター名にはしないと思います。また、/etc/hostsに「example」という名前に関する定義はあるでしょうか? たとえば、127.0.0.1 exampleと書かれていれば、ping exampleを実行すると、自マシンからのping結果が返ってくるはずです。 ここから先は、「example」という名のホストは存在せず、/etc/hostsにもそのような定義はなく、ping exampleを実行すると、ping: unknown host exampleという結果が表示される前提で話を進めます。 ホスト名からIP

    名前解決サービスを自作する - Qiita