タグ

Linuxに関するdshimizuのブックマーク (67)

  • Goから見たシステムコール (1/2)

    今回は、システムコールそのものについて深く掘り下げていきます。 システムコールとは何者で、ないとどうなるのか? システムコールを呼び出すコード(Go言語アプリケーション側)を探索しよう システムコールから、実際にOSカーネル内で仕事をする関数が呼び出されるまでのステップは? システムコールの呼び出しをモニターするツールの紹介 とはいえ、Goでアプリケーションプログラムを書くほとんどの人は、直接システムコールを呼び出すコードを書くわけではないでしょう。 また、OSを改造してシステムコールを自分で作成することもまれでしょう。 そのため、今回の記事にはサンプルコードを使ったハンズオンはあまりなく、手を動かしてコード化するネタはありません。 この連載のテーマは「プログラマの視点から、具体的で役に立ちそうな低レイヤーの情報を提供する」ことですが、今回に限っては座学的な内容です。 謝辞 今回の執筆にあ

    Goから見たシステムコール (1/2)
  • ハイパーバイザの作り方

    「ハイパーバイザの作り方」公開ページ こちらのページはSoftware Design誌の連載記事「ハイパーバイザの作り方」の公開ページです。 「Linuxのしくみを学ぶ - プロセス管理とスケジューリング」も公開中ですので、こちらも是非ご覧ください。 公開中の記事 第1回 x86アーキテクチャにおける仮想化の歴史とIntel VT-x [HTML] [PDF] [ePub] [mobi] [Kindle] 第2回 Intel VT-xの概要とメモリ仮想化 [HTML] [PDF] [ePub] [mobi] [Kindle] 第3回 I/O仮想化「デバイスI/O編」 [HTML] [PDF] [ePub] [mobi] [Kindle] 第4回 I/O仮想化「割り込み編・その1」 [HTML] [PDF] [ePub] [mobi] [Kindle] 付属資料 最近のPCアーキテクチャにお

  • Linux Performance

    static, benchmarking, tuning: sar, perf-tools, bcc/BPF: bpftrace, BPF book: Images license: creative commons Attribution-ShareAlike 4.0. This page links to various Linux performance material I've created, including the tools maps on the right. These use a large font size to suit slide decks. You can also print them out for your office wall. They show: Linux observability tools, Linux static perfor

  • Linuxで扱う乱数に関する話 – @knok blog

    これはLinux Advent Calendar4日目の記事です。 Unix系OSには、カーネルに乱数生成器を持つ実装が多くあります。乱数は暗号分野でも利用され、非常に重要な位置を占めています。Linuxにおける乱数に関する話題を取りあげてみます。 エントロピープール 一般的に、特別なハードウェアを持たない限り、真の乱数を計算機が生成することは困難です。Linuxでは、質の良い乱数を生成するためにエントロピープールと呼ばれる領域を持っています。エントロピープールには、キーボードの入力タイミングやストレージ、ネットワークなどで発生するハードウェア割り込みなどをもとにした推測の困難な情報(環境ノイズ)が蓄積されます。乱数の生成時には、このエントロピープールの内容を消費、加工します。 エントロピープールにどの程度情報がたまっているかを調べるには、/proc/sys/kernel/random/e

  • Investigation of regular high load on unused machines every 7 hours

    Skip to main content >Close

    Investigation of regular high load on unused machines every 7 hours
  • Linuxのloadavgが約7時間ごとに上昇する現象の原因 - Mackerel お知らせ #mackerelio

    Mackerelチームのエンジニアのid:itchynyです。 「mackerel-agentを入れるとloadavgが7時間ごとに上昇する」 先日、このような問い合わせを複数のお客さまから受けました。私も実験してみたところ、確かに再現しました。EC2 t2.microにmackerel-agentを入れて簡単なログ監視とプロセス監視を設定し、数日放置しました。 確かに、約7時間ごとにloadavgが上昇しています。この周期のcronの設定はしておらず、またmackerel-agent内部でも7時間ごとに行う処理はありません。しかし、プラグインを多く入れるほどloadavgのピーク値も上がります。 エントリーでは、この現象の原因について説明します。 loadavgが上昇する原因を調べるには、まずloadavg自体がどう計算されているかを知る必要があります。 まずは、Linuxがloada

    Linuxのloadavgが約7時間ごとに上昇する現象の原因 - Mackerel お知らせ #mackerelio
  • Linux I/O のお話 write 編 - naoyaのはてなダイアリー

    write はページに dirty フラグを立てるだけなので決してユーザープロセスを待たせない って、当にそうなんでしょうか?(否定しているわけではなく、純粋な疑問です。) と質問をもらったので、最近追ったことをここでまとめます。かなり長文です、すいません。また、まだまだ不勉強なので間違っているところもあるかもしれません。ツッコミ大歓迎です。 まず、オライリーのカーネルの 15章 ページキャッシュ 15.3 汚れたページのディスクへの書き込み から引用。 ご存知のように、カーネルは、ブロック型デバイスのデータを含むページをページキャッシュに蓄えています。プロセスが何らかのデータを更新した場合は、必ず対応するページに汚れている印をつけます。すなわち、PG_dirty フラグを設定します。 UNIX システムでは、汚れたページのブロック型デバイスへの書き込みを遅延することができます。この方

    Linux I/O のお話 write 編 - naoyaのはてなダイアリー
  • 2018年1月29日 Linux 4.15が正式リリース、 Meltdown/Spectreにフルパッチ対応 | gihyo.jp

    Linux Daily Topics 2018年1月29日Linux 4.15が正式リリース、 Meltdown/Spectreにフルパッチ対応 Linus Torvaldsは1月28日(米国時間⁠)⁠、2018年最初のカーネルアップデートとなる「Linux 4.15」の正式公開をアナウンスした。年初に明らかになったIntel CPUの脆弱性問題(Meltdown/Spectre)の対応のため、通常のスケジュールよりも多い9のリリース候補(RC)版を出すかたちとなり、4.15-rc9の後に出されたIntelのパッチに対しては「どこからどう見ても完全なるクソコード(All of this is pure garbage./As it is, the patches are COMPLETE AND UTTER GARBAGE.⁠)⁠」など、相変わらずの口の悪さで怒りを表明していたLinus

    2018年1月29日 Linux 4.15が正式リリース、 Meltdown/Spectreにフルパッチ対応 | gihyo.jp
  • サーバーのメモリが少しずつ圧迫される原因と対策を調べてみた - 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
  • Linuxでディスクキャッシュとして使える「bcache」を試してみた - astamuse Lab

    こんにちは。並河(@namikawa)です。 最近、すっかり暑くなってしまって、夏番って感じですね。夏といえば、海に花火にラーメンと、楽しみが盛り沢山でワクワクしますね! さて、弊社では多くのデータストアを持っておりますが、クラウドサービス上で大容量なディスクと高い性能を両立させようとすると、(費用的な意味での)コストが一気に跳ね上がることもあり、色々な工夫を試行錯誤しながらやっております。 一定量のホットデータがはっきり見えている前提であれば、高速なストレージデバイスをキャッシュとして使うことは定石であり、キャッシュと一括りにしても様々なレイヤで技術実装されています。 今回はその中でも比較的低レイヤとなるハードディスク等のディスクアレイのようなブロックデバイスに対するキャッシュとして動作する bcache について簡単な性能検証を行なってみました。 bcache とは 概要的な情報を以

    Linuxでディスクキャッシュとして使える「bcache」を試してみた - astamuse Lab
  • 第319回 Ubuntu 14.04と日本語入力 | gihyo.jp

    今回は4月17日にリリース予定のUbuntu 14.04での日本語入力(インプットメソッド)の変更点をお知らせします。 概要 事前にはいろんな話が出ましたが、結局のところ13.10と大きな違いはありません。 IBusのバージョンは1.5.5になり、新たにプロパティパネルという機能が実装されました。13.10ではキーボードレイアウトないし変換エンジン(入力ソース)をSuper[1]+Spaceキーで切り替えるはずだったものの、実際には動作しないのでCtrl+Spaceキーに変更して切り替える、という事態になっていましたが、14.04では正しく動作するようになりました。 ただし、切り替える必要はほとんどなくなりました。なぜなら日語キーボードで日語の変換エンジンが選択された場合は、その変換エンジンのみが登録されるようになったからです。これによって半角/全角キーでいわゆる半角モードと全角モード

    第319回 Ubuntu 14.04と日本語入力 | gihyo.jp
  • main()関数の前には何があるのか

    C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。最終回は、Linuxカーネルの中では、プログラムの起動時にはどのような処理が行われているのかを探る。

    main()関数の前には何があるのか
  • 中学生でLinuxカーネルのバグフィックス! 若き天才エンジニア矢倉大夢に爆速成長術を学ぶ - エンジニアHub|Webエンジニアのキャリアを考える!

    中学生でLinuxカーネルのバグフィックス! 若き天才エンジニア矢倉大夢に爆速成長術を学ぶ 中学1年生でプログラミングを開始。高校時代にプログラミング関連の数々の賞を受賞。そして、大学在学中にグローバルリーダーの育成トレーニングを提供している株式会社TEAMBOXのCTOに就任した矢倉大夢さん。エンジニアとして圧倒的スピードで成長をする術を聞きました。 中学1年生でプログラミングを開始。高校時代にプログラミング関連の数々の賞を受賞。そして、大学在学中にグローバルリーダーの育成トレーニングを提供している株式会社TEAMBOXのCTOに就任。まるで映画やドラマの登場人物のような輝かしいキャリアですが、これは実在の人物。若き天才エンジニア・矢倉大夢(やくら・ひろむ/@hiromu1996)さんの経歴です。 中学時代にプログラミングの魅力に取りつかれて以来、猛スピードでスキルを積み上げてきました。

    中学生でLinuxカーネルのバグフィックス! 若き天才エンジニア矢倉大夢に爆速成長術を学ぶ - エンジニアHub|Webエンジニアのキャリアを考える!
  • 第60回 いまさらながらVNC[その2] | gihyo.jp

    前回、ずいぶん遠回りしてしまったものの、なぜ手元の環境でVNCが必要となったのか、という話をしました。 VNCを使えば、隣りのマシンで動いているWindowsの画面をLinuxデスクトップ中に表示することができ、KVMスイッチなどでキーボードや画面を切り替える必要もなく、キャプチャの開始や終了、ファイルの移動等の操作が可能になります。 図1 VNCの動作例 この画面は、一見するとVirtualBox等の仮想環境でWindowsを動かしているのと変りなく見えます。しかし、ここで動いているキャプチャソフトはUSB外付けキャプチャボックスを操作しており、それを接続するために実際のWindowsマシン一式が必要となったわけです。 さて、それではVNCはどのようなしくみで異なる環境に画面を表示させているのでしょう? 今回はVNCのしくみや歴史について紹介してみます。 VNCとRFB VNCはサーバ

    第60回 いまさらながらVNC[その2] | gihyo.jp
  • LVSの高負荷対策 その2 ~障害の再現とその原因~ : DSAS開発者の部屋

    こんにちは。インフラ担当の岡村です。 「LVSの高負荷対策 その1 ~障害発生~」の記事で、大量のSYNパケットを受信した際にロードバランサの再起動が発生したことと、その緊急の対策についてご紹介しました。 今回は、再現確認を行い判明した再起動の原因と、LVSに備わっている高負荷対策の機能についてご紹介します。 検証 前回ご紹介した通り、障害発生時のログからメモリ周りが怪しそうでした。 そこで、ロードバランサにSYNパケットを送り、メモリの使用量の推移を観察しながら、再起動が発生するかどうかを確認しました。 検証環境の構成は次のようになります。 検証環境の構成 パケット送信用サーバを複数台、ロードバランサを1台、Webサーバを1台使用し検証を行いました。 ロードバランサの検証を行う上で、番環境と同様にロードバランスの処理をさせたかったため、LVSに振り分け先のWebサーバのIPアドレスを複

    LVSの高負荷対策 その2 ~障害の再現とその原因~ : DSAS開発者の部屋
  • Linux Performance Analysis in 60,000 Milliseconds

    You log in to a Linux server with a performance issue: what do you check in the first minute? At Netflix we have a massive EC2 Linux cloud, and numerous performance analysis tools to monitor and investigate its performance. These include Atlas for cloud-wide monitoring, and Vector for on-demand instance analysis. While those tools help us solve most issues, we sometimes need to login to an instanc

  • プログラムの実行はどのようにして行われるのか、Linuxカーネルのコードから探る

    書籍の中から有用な技術情報をピックアップして紹介するシリーズ。今回は、秀和システム発行の書籍『ハロー“Hello, World” OSと標準ライブラリのシゴトとしくみ(2015年9月11日発行)』からの抜粋です。 ご注意:稿は、著者及び出版社の許可を得て、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。 ※編集部注:前回記事「エンジニアならC言語プログラムの終わりに呼び出されるexit()の中身分かってますよね?」はこちら Linuxカーネルの処理を見てみよう ここまでは主にglibcが持つスタートアップと終了処理について見てきた。 しかしOSカーネルの中では、プログラムの起動時にはどのような処理が行われているのだろうか。 例えばプログラムの実行はエントリ・ポイントから開始される、という説明をした。ということはエントリ

    プログラムの実行はどのようにして行われるのか、Linuxカーネルのコードから探る
  • BFQスケジューラ

    私事ですが,この前買ったVAIO Pro 13 | mk2のカーネルをZENパッチセットを適用したlinux-zenにしました. ArchLinuxではなぜか公式レポジトリ入りしてるのでバイナリが降ってきます. それ以前はlinux-drm-intel-nightlyから自分でビルドした4.4rcのカーネルを一瞬使ってましたが,このマシンで発生しているチラつきや不安定な挙動の解決に有効ではなかったようなのでやめました. 閑話休題 pfパッチセットやZENパッチセットではI/OスケジューラにBFQが採用されています. ckパッチセットではデフォルトではないもののBFQが使えるようです. さて,そこでBFQスケジューラについて調べ,まとめました. BFQスケジューラとは BFQ = Budget Fair Queueing インタラクティブなアプリのための低遅延なsched マルチメディアのよ

    BFQスケジューラ
  • 俺は Linux コンテナについてなんにも解っていなかった 〜 haconiwa で学ぶ Linux コンテナ (1) 〜 - ようへいの日々精進XP

    追記 直近の Docker 界隈について Linux コンテナ 参考 Linux コンテナとは Linux コンテナを構成する主な機能 OS リソース毎の Namespace cgroup サブシステム こんなにざっくりでは、Linux コンテナは語れないと思うけど haconiwa haconiwa とは haconiwa で何が出来ると? haconiwa 導入 はじめての haconiwa (1) はじめての haconiwa (2) 〜 コンテナ作成 〜 はじめての haconiwa (3) 〜 コンテナ起動 〜 haconiwa で学ぶ Linux コンテナ .haco ファイル再掲 namespace を弄る前に namespace uts namespace pid 俺は Linux コンテナについてなんにも解っていなかった(まとめ) haconiwa は Linux コンテ

    俺は Linux コンテナについてなんにも解っていなかった 〜 haconiwa で学ぶ Linux コンテナ (1) 〜 - ようへいの日々精進XP
  • 「ブロックチェーン版Linux v1.0」は世界を変えられるか

    The Linux Foundationによるブロックチェーンのオープンソースソフトウエア(OSS)開発プロジェクト「Hyperledger Project」は2017年3月末~4月初頭に、ブロックチェーンソフト「Hyperledger Fabric v1.0」をリリースする。 「業務用ブロックチェーンのLinux」を目指すFabricの正式版リリースで、ブロックチェーンを決済、証券取引、製造業や流通のトレーサビリティといった領域に応用する実証実験が加速しそうだ。ただし、Fabric v1.0は実運用に向けた課題がいくつか残っており、実験と並行してFabric自身の改良も求められる。 IT、金融、製造の大手企業がプロジェクトに参画 Hyperledger Projectは、企業の業務システム並みの安定性・信頼性を持つ分散台帳(distributed ledger)技術のOSSを開発するプロ

    「ブロックチェーン版Linux v1.0」は世界を変えられるか