いま知っておきたいLinux─WebアプリがOSのプロセスとしてどのように見えるか? を運用に生かす Webアプリを動かして負荷をかけると、OSのプロセスという観点ではどのように見えるのでしょう? それを通して運用やトラブルシューティングではどういったことが分かるのでしょう? Linuxカーネルの開発者でもある武内覚(sat)さんによる解説です。 こんにちは、sat(@satoru_takeuchi)と申します。 コンピュータが誕生してから現在まで、最終的にエンドユーザが意識するアプリケーション開発はどんどん楽になっています。先人たちのたゆまぬ努力の結果、アプリ開発者はOSや、そのさらに下にあるハードウェアのことをほとんど意識することなく開発ができるようになりました。 しかし、「作ったアプリが、OSレベルでどのように動いているか?」が今一つピンと来なくて、モヤモヤしていないでしょうか。それ
パフォーマンスチューニングガイド 1. 概要 Expand section "1. 概要" Collapse section "1. 概要" 1.1. 本書を読むにあたって Expand section "1.1. 本書を読むにあたって" Collapse section "1.1. 本書を読むにあたって" 1.1.1. 対象読者 1.2. リリースの概要 Expand section "1.2. リリースの概要" Collapse section "1.2. リリースの概要" 1.2.1. Red Hat Enterprise Linux 6 における新機能 1.2.2. 水平方向のスケーラビリティ 1.2.3. 分散システム 2. Red Hat Enterprise Linux 6 のパフォーマンス機能 Expand section "2. Red Hat Enterprise Li
Multiqueue virtio-net Overview This page provides information about the design of multi-queue virtio-net, an approach enables packet sending/receiving processing to scale with the number of available vcpus of guest. This page provides an overview of multiqueue virtio-net and discusses the design of various parts involved. The page also contains some basic performance test result. This work is in p
最近勉強を始めたコンテナ技術に関する基礎的な知識をまとめました。 [訂正と注釈] p.27-30: 「Deployment」内の「Version: 1」 => 「Version: 2」 p.37: 「終了コードをから」 => 「終了コードから」 p.39: 「HTTPSが利用できない」=> AWS上では、SSL終端するLBがサポートされています。https://kubernetes.io/docs/concepts/services-networking/service/#ssl-support-on-aws p.40: 「ユーザがingress controllerをmaster上にセットアップする必要」 => master上にセットアップしなければならないという制約はありません。例えばGCEのingress controller(GLBC)はPodとして動作します。https://gi
PassthroughやマルチキューNICは仮想マシンのボトルネックであるI/Oの性能をネイティブとほぼ同等にすることができる技術です.特にマルチキューNICは複数のVMのネットワーク性能を上げることができる(はず)の期待のハードウェア技術です. VM向けのマルチキューNICはまだほとんど実装されていないですが(Intel 10GbE NICだけ?),送信キューを複数もつNICはすでに一般的になりつつあるようです. 以下では,linux-2.6.27-rc1でマージされたLinuxのマルチキューNICパッチに関する記事(Multiqueue networking [LWN.net])を少しだけ翻訳したものです.このパッチは送信キュー対応だけで,VMで重要になる受信キューに関してはまだ未対応のようですが,Linuxの機能を活用するKVMにとっては重要な一歩だと思います. なお,翻訳は大雑把な
DRDBのようなリアルタイム同期を使うほどではないが、2台のLinuxサーバ間で一部のファイルを同期したいときがある。そのようなときに自分はunisonを使う。 unisonは非同期的にファイルを2台のサーバ間で同期するためのツールです。rsyncとは異なり、あらかじめ同期したいディレクトリやファイル名を設定ファイルに登録しておき、同期を必要とするときにunisonコマンドを実行すると2台のサーバ間で予め同期登録していたファイルが同期されるというセミオートマティックな仕組みが実現できます。 unisonのインストールは以下の手順で可能です。 ■ RHEL/CentOS yum install unison ■ debian/Ubuntu sudo apt-get update && apt-get install unison ■ freeBSD cd /usr/ports/net/uni
オプションの --queryformat (--qf) の書式文字列で %{NAME} を指定するとできる。 一番やりたかったこと。 インストール済みの全パッケージの名前だけリストアップする。 改行を入れるために \n も書いている。 $ rpm -qa --queryformat '%{NAME}\n' libidn-devel at-spi-devel gd cairo ctags xorg-x11-drv-aiptek ed libXi nspluginwrapper perl-IO-Socket-INET6 ... 普通にパッケージを指定して rpm -q を実行するとバージョンとリリースも表示される。 $ rpm -q httpd httpd-2.2.3-91.el5.centos次の --queryformat を指定するとパッケージ名だけが表示される。 $ rpm -q ht
Linus Torvalds Shows His New Polite Side While Pointing Out Bad Kernel Code - Phoronix 人の心の読み方を学んで復帰したリーナス・トーバルズは、さっそく無作法なプルリクエストをたしなめている。その文章は大文字センテンスも4文字言葉も使っていない優しいものに変わっている。 問題はプルリクエストはBigBenゲームコントローラーに対するドライバーの追加で、このドライバーはデフォルトで有効にされていた。これはLinuxカーネルの慣習にそぐわないものだ。新しく追加された名前もきいたこともないようなデバイス用のドライバーが、いきなりカーネルでデフォルトで有効にはされないものだ。新参者のドライバー開発者は、大抵自分のドライバーはとても重要で、自分の所有しているデバイスは全員所有しているのでデフォルトで有効にするのは当然
resolv.confが更新される 当然なのですが、IP情報をDHCPサーバから貰っちゃうと「/etc/resolve.conf」のDNSサーバ情報が勝手に更新されてしまいます。通常はそれで問題ないのですが、DNSサーバは自分で決めたものを使いたいという場合の方法です。 私の場合は、複数のNICがついたサーバで、DHCPでIP貰うNICと、固定でIP設定をしているNICが混在している場合などに設定しています。(この設定を追加するのを忘れてサービス止めたこともありました・・・) resolv.confを更新させないためには dhcpクライアント側のNIC設定ファイルに少し設定を追加・変更することで、「/etc/resolv.conf」のDNSサーバ情報が更新されなくなります。 今回は設定ファイルを編集する方法と、CentOS7からですが、「nmcli」コマンドを使用することでも設定を変更出来
とすれば、実際のインストールは行なわずにファイルがどこにインストールされるかを表示してくれます。 -n --just-print --dry-run --recon No-op. Causes make to print the recipes that are needed to make the targets up to date, but not actually execute them. Note that some recipes are still executed, even with this flag (see How the MAKE Variable Works). Also any recipes needed to update included makefiles are still executed (see How Makefiles Are Remad
ここでは、Linuxを使ったネットワークプログラミングの説明を行いたいと思います。 ここで対象としている読者は、ネットワークプログラミング初心者(もしくは入門者)かつLinux環境でプログラミングを行いたい人です。 開発環境としては、C言語+gccを想定しています。 説明内容は主にソケットプログラミングになります。 なお、C言語そのものが初めての方は「C言語入門」も参考にどうぞ。Windows専用には書いてませんが主にC言語で共通の部分を解説しています。 コードを書く前の準備 まず、gccを使える状態にしないといけません。 ディストリビューションにもよりますが、Linuxを普通にインストールしただけでは開発環境は入りません。 開発環境を用意するためには、gccやglibcなどのrpmを必要に応じてインストールしてください。 次に、エディタが必要になります。 mule、emacs、xemac
Linuxのトレーサーであるperfやftraceのツールの使い方に関する情報は結構ありますが,構造に関してはあまり見つけられなかったため,ここに簡単に調べたことをまとめようかと思います.(ツールの使い方の説明はあんまりしないです.) この文章はLinux 4.15のソースに基づいています. 全体像 ftrace function trace tracepoint (static event) kprobe (dynamic event) その他のtracer trace-cmd perf PERF_TYPE_HARDWARE, HW_CACHE, RAW PERF_TYPE_SOFTWARE PERF_TYPE_TRACEPOINT PERF_TYPE_BREAKPOINT USDT (SDT Event) perf-tools perf ftrace straceとの比較 その他 pe
apt-get してインストールする。と、ざっくりいきたいところだけど、シミュレーションすると syslog-ng をインストールする代わりに、sysklogd と klogd をアンインストールしてしまうみたいだ。/etc/syslog.conf を全くいじっていない場合は、置き換えられても問題ないようにはできている。だが、カスタマイズしている場合は、取得できないログが発生する可能性があるので、基幹部分のサーバーなどにインストールする場合は、予めテスト環境を作成し、検証しておいた方が良いだろう。なお、新規にdeb パッケージをインストールしようとしたが、sysklogd とconflict し、インストールすることはできなかった。
bashの環境設定ファイルについて 普段パスを指定すること無くコマンドを利用できるのは、ログイン時にコマンドへのパスが記述された設定ファイルを読み込んでいるからです。 以下の順序で設定ファイルを読み込んでいます。 ログイン時 1.「/etc/profile」の読み込み このファイルはログイン時に読み込む全ユーザー共通の設定です。ここで基本的なコマンドにパスを通しています。 2.「.bash_profile」の読み込み 続いてユーザーのhomeディレクトリにある「.bash_profile」を読み込みます。 それがない場合は「.bash_login」。 それもない場合は「.profile」。 という順序でユーザー個別の設定を読み込みます。 なぜか3つも用意されていますが、ディストリビューションによって優先順位や有効なファイルが違うため、使い分ける必要があります。CentOSの場合は「.bas
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く