タグ

Linuxとcpuに関するyukimori_726のブックマーク (28)

  • LinuxのI/OやCPUの負荷とロードアベレージの関係を詳しく見てみる - Qiita

    大人気TBSドラマ、「逃げるは恥だが役に立つ」でも話題になったインフラエンジニアという言葉ですが、今ではインターネットインフラを知らないまま開発をするのも難しい状況になっています。クラウドが一般化されたからといって単にリソースの調達が簡単になっただけで、つまりハードウェアの知識が無くても何とかやっていけるようになっただけであり、インフラの知識が要らなくなったなどということは全くなく、むしろdevopsの掛け声とともに、ソフトウェア開発者にインフラを見なければならない新たな責務が課せられたという、なかなか痺れる状況なのだろうと思います。 そういった中で、先日のさくらインターネットのAdvent Calendar最終日に「いまさら聞けないLinuxとメモリの基礎&vmstatの詳しい使い方」という記事を書かせて頂きましたが、今回はLinuxサーバの「負荷」と、ロードアベレージに関して、掘り下げ

    LinuxのI/OやCPUの負荷とロードアベレージの関係を詳しく見てみる - Qiita
  • 実行時間計測の方法

    実行時間を計測する方法は各種存在していますが、例題では 4 種類の方法により計測しています。 clock/getrusage では、呼び出したプロセスの CPU 時間やリソース使用量が利用されるため、sleep/usleep 関数により CPU の利用を停止すると、その間の経過時間は計測されないので注意が必要です。 比較的長い時間の処理で、かつ I/O 等も含めたプログラム全体の処理を測定するには、時刻から経過時間を計測する gettimeofday を用いる方法が無難な方法になります。 times はシステムが起動した時間からのクロック数を返すため、gettimeofday と同様プログラムが CPU を利用しない間も、システム側が利用しているクロックを取得し、経過時間を取得することができます。 プログラム中の一部の処理において CPU 時間を測る場合、短い時間測定には getrusag

  • Linuxパフォーマンス調査などで使うコマンドメモ - Qiita

    パフォーマンスなどの調査をする時に利用する便利コマンドメモ。 これないぞ、あれないぞなどあると思いますがとりあえずなどを参考にまとめたものをピックアップしています。 参考 [24時間365日] サーバ/インフラを支える技術 ‾スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ) 絵で見てわかるシステムパフォーマンスの仕組み CPU使用率やメモリなど全体の概要把握 top デフォルトでは3秒ごとにOSで利用しているプロセスの数や状態、またOS全体のシステムリソース状況が分かります。 パフォーマンスが悪い場合にOS全体としてどのリソースの利用が多いのか(CPU負荷なのかメモリ利用率が高いのか)などの判断に有用だと思われます。 top - 22:36:56 up 28 min, 2 users, load average: 0.00, 0.02, 0.

    Linuxパフォーマンス調査などで使うコマンドメモ - Qiita
  • ふふふのブログ 【debian】【gnu】【Linux】【ARM】Linux/busyboxをコンパイルして、qemuで動作させる

    クロス環境のセットアップが終わったので、Linux/busyboxを動作させてみた。 参考サイト:https://gist.github.com/poutyface/1223553 (QEMU: 仮想ボード ARM Cortex-A9 マルチコアで Linux を動かす) ■qemuのインストール apt-getで環境をインストール。 $ sudo apt-get install qemu qemu-system armでサポートしているボードを確認。 $ qemu-system-arm -M \? Supported machines are: collie Collie PDA (SA-1110) nuri Samsung NURI board (Exynos4210) smdkc210 Samsung SMDKC210 board (Exynos4210) connex Gumsti

  • http://www.g-ishihara.com/c_st_01.htm

  • 性能問題の切り分け方法について考えてみる - ablog

    つれづれなるままに、日ぐらしパソコンに向かひて、心にうつりゆくデータベースの性能問題の切り分け方法をそこはかとなく書き付くれば、あやしうこそ物狂ほしけれ。なエントリ(書きかけ)。一度、脳内をフラッシュしてからまとめるべし。 性能問題による影響 性能問題による影響を以下の2つに分類する。 システム全体が遅い 一部の処理が遅い 性能問題の原因 性能問題の原因を以下の2つに分類する。 交通量が多い 単純に交通量が多くて渋滞している 例)年末年始やお盆の帰省ラッシュやUターンラッシュ 経路の途中で詰まっている 車線減少や通行止めなどで渋滞している 例)年度末の工事による車線減少、飲酒の検問、交通事故による通行止めなどで経路のどこかで詰まっている 切り分け手順の分類 システム全体が遅いケースと一部の処理が遅いケースで切り分け手順は変わる。 切り分けはOSレイヤーとデータベースレイヤーの2つの観点から

    性能問題の切り分け方法について考えてみる - ablog
  • sysのCPU使用率が高い場合にその内訳を調べる方法 - ablog

    OSレベルで sys のCPU使用率が高い場合に perf*1 を使って、何の処理の割合が高いか調べる方法です。 perf は 特定のプロセスだけでなくOS全体の統計を見れる カーネル(sys)とユーザー(user)の両方を見れる ところが非常に便利だと思う*2。 準備 ひたすら write システムコールを発行し続けるプログラムを作成する $ cat write_loop.c #include <unistd.h> int main(void) { while(1) { write(1, "foo\n", 4); } } コンパイルする $ gcc write_loop.c -o write_loop 実行権限を付与する $ chmod u+x write_loop 検証 ひたすらwriteシステムコールを発行するプログラムを実行する $ ./write_loop > /dev/null

    sysのCPU使用率が高い場合にその内訳を調べる方法 - ablog
  • Broken Linux Performance Tools 2016

    Broken benchmarks, misleading metrics, and terrible tools. This talk will help you navigate the treacherous waters of Linux performance tools, touring common problems with system tools, metrics, statistics, visualizations, measurement overhead, and benchmarks. You might discover that tools you have been using for years, are in fact, misleading, dangerous, or broken. The speaker, Brendan Gregg, has

    Broken Linux Performance Tools 2016
  • Linux/UNIXでプロセスごとのリソース消費量を確認する | 俺的備忘録 〜なんかいろいろ〜

    Linux/UNIXで、OS全体ではなく特定のプロセスで使用しているリソースのみを取得したい場合は、主に以下の2通りになるだろう。 1.psコマンドで取得する psコマンドでは、「u」を付与することでCPUやメモリ使用率について取得することも出来る。 例えば、以下の例では全ユーザで実行している、topコマンドについてCPU・メモリ使用率を出力させている(中身はgrepっぽいので、そのものずばりだけ抽出出来ないけど)。 ps au -C top [root@localhost ~]# ps au -C top USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 15680 0.0 0.0 115380 2040 pts/0 Ss 16:42 0:00 -bash root 15759 0.0 0.0 115380 2020

  • Linux で計算機クラスタを作る (1. ネットワーク構築) - Qiita

    必要に迫られて計算機クラスタを作ったのでその手順を解説します。 何を作ったのか うちの研究室では高性能なCPU/GPU を搭載したマシンを数台所有しており、使いたい人に配って個別管理してもらっていたのですが、このたび使いたい人が増加し、話し合って融通するのも面倒なので、ジョブ管理システムを備えたクラスタを構築することにしました。あくまで稼働率向上のためのクラスタ化なので、ノード間並列機能は備えておりません。 記事は「ユーザーとしての Linux の操作にはひと通り慣れたけど、ネットワークの詳しい知識は持ってない」という人を対象に書いています。つまり僕くらいの人です。詳しい人から見ればところどころ勘違いがあると思いますがご了承願います。 環境 OS: Ubuntu Server 14.04 Network: Gigabit Ethernet ジョブ管理: Torque サーバー用途としては

    Linux で計算機クラスタを作る (1. ネットワーク構築) - Qiita
  • コマンドによる「負荷」の原因切り分け

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    コマンドによる「負荷」の原因切り分け
  • プロセスのCPU使用率を制限する方法 - Qiita

    CPU負荷制限 cpulimit というツールがあり、%指定でそのプロセス(子プロセス含む)のCPUの利用率を制限することができます。例えば infinity という単にシングルスレッドで無限ループするプログラムがあったとして、CPU使用率10%で制限するには以下のようにします。 この10%というのは1論理コアの割合です。100と指定すると論理コア1個分(100%)まで許可することになります。例えば4論理コアの環境ではこの値は0~400まで設定できます。なのでシングルスレッド・シングルプロセスのプログラムであれば100以上指定しても意味はありません。 infinityを2論理コア上で50%で制限すると、以下のようになります。 (↓では論理コア全部を100%として表示してます) 既に走っているプロセスに制限をかけることもできます。

    プロセスのCPU使用率を制限する方法 - Qiita
  • マルチコア時代のロードアベレージの見方 - naoyaのはてなダイアリー

    ちょっと煽り気味のタイトルですが、CPU がマルチコアになり 2個、4個と増えていく中 Linux の負荷の指針になるロードアベレージをどう読むべきか、という話です。気になったところを少し調べたのでそのまとめを。 http://d.hatena.ne.jp/naoya/20070222/1172116665 でも書いたとおり、Linux のロードアベレージは「ロードアベレージは過去1分、5分、15分の間の実行待ちプロセス数の平均数 = 実行したくても他のプロセスが実行中で実行できないプロセスが平均で何個ぐらい存在してるか」を示す値です。ボトルネックが CPU、メモリ、ディスク等々どこにあるかは関係なく、仕事の実行までにどれぐらい待たされているかを示す値なので、システムのスループットを計測する指標の入り口になる値です。 このロードアベレージですが、実装を見るとランキュー(待ち行列)に溜まった

    マルチコア時代のロードアベレージの見方 - naoyaのはてなダイアリー
  • プロセスのランキュー待ち時間とI/O待ち時間を調べる - ablog

    cat file|awk では実行時間 < CPU時間となっていますが、cat が I/O wait していないとは限りません。実行時間は単純に終了時間 - 開始時間で算出しますが、CPU時間はプロセスのCPU時間を getrusage システムコールで取得します。catのプロセスと awk のプロセスが並列実行されている期間があるため、実行時間 < CPU時間となっています。例えば、CPUバウンドな2プロセスがほぼ完全に並列実行されると、実行時間 * 2 ≒ CPU時間 となったりします。 (中略) 大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog と書きましたが、プロセスの ランキュー待ち時間は /proc//sched の2列目(sched_info.run_delay) I/O待ち時間は /proc//schedstat の se.stati

    プロセスのランキュー待ち時間とI/O待ち時間を調べる - ablog
  • ”私の環境で”大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog

    大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog を書きましたが、awk file > file より cat file|awk > file が速い環境は稀なようなので、私の環境でなぜ cat file|awk > file のほうが速いのか調べてみました。プロセススケジューラが関係しているようです。 ↑はPerf + Flame Graphs で、awk file > file 実行時のコールスタックと所要時間を可視化したものです。 結論(たぶん) SSDの暗号化・復号をカーネルスレッドで行なっているのと、プロセススケジューラが awk とカーネルスレッドを同じ CPU にスケジューリングしていた(他に空いている CPU があるのに)。 awk file > file では暗号化データを復号するカーネルスレッドと awk のプロセスをプロセススケ

    ”私の環境で”大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog
  • x86 Linux シェルコード作成 - k0u5uk3’s blog

    2015-07-21 x86 Linux シェルコード作成 pwn シェルコードとは ソフトウェアの脆弱性攻撃のペイロードであり、バイトコードで記述されます。そのため、CPUやOSのバージョンといったプラットフォーム毎に作成されます。 シェルコードという名称は一般的にシェルを起動することが攻撃者にとって楽にマシン全体の制御を奪う方法であり多用されているからですが、実際のところシェルコードはどのような処理も記述することができます。 x86 Linux シェルコード作成の前提知識 アセンブリ言語 シェルコードのバイトコードは、マシン語命令のアーキテクチャによって異なるため、アセンブリ言語で記述することになります。 Linuxシステムコール OSはカーネル内で入力、出力、プロセス制御、ファイルアセクス、ネットワーク通信と行ったタスクを管理します。 C言語のプログラムは最終的に、こういったタスクを

    x86 Linux シェルコード作成 - k0u5uk3’s blog
  • Load Average(ロードアベレージ)とCPU数 - tweeeetyのぶろぐ的めも

    はじめに 業務中Load Averageを見ることが多いが Load Averageについてあらためて自分のためにも整理&メモ また、誰かに質問された際にええっとええっと。。。とならないように 質問されたらって仮定ですw 知ってるつもりなのに意外に答えられないんですよね(>_<) Load Average Load Averageってなに?(※こぴりました。 実行プロセス数(実行中プロセス数+実行可能プロセス数) Load Averageが高いとなに? 語弊を恐れず言えば Load Averageが高い ≒ サーバ負荷が高い ≒ 重い ≒ 応答速度が遅い Load Averageが高いってどんな状態?もっとkwsk...的な コマンド(uptimeなど)でLoad Averageを表示した場合に Load Averageの値がCPUの数より大きい場合、「Load Averageが高い」(

    Load Average(ロードアベレージ)とCPU数 - tweeeetyのぶろぐ的めも
  • Linuxサーバに搭載されているCPUコア数の確認 - 元RX-7乗りの適当な日々

    この前、若手に聞かれたので、ここにも書いておく。 好みでは有るが、可能な限り数字のみで標準出力に出せるようにしておくと、スクリプトの中などで並列実行数を動的に定義しやすい。 ちなみに下記の前提は、CentOS 6.6 & 56コア(!)のサーバで確認している。 nproc # nproc 56一番簡単なやつ。 getconf # getconf _NPROCESSORS_ONLN 56getconfでも拾える。 /proc/cpuinfo # cat /proc/cpuinfo | grep -c "processor" 56皆さん、ご存知の通り、 /proc/cpuinfo は多くのCPU情報を取得することが出来る。 余談だけど、 /proc/cpuinfo に含まれる"physical id"はどの物理ソケットか、とか、"core id"を見ると物理コア(HT関連などで論理コアの紐付き

    Linuxサーバに搭載されているCPUコア数の確認 - 元RX-7乗りの適当な日々
  • RHEL7/CentOS7のLinux KVMリソース割り当て機能 - めもめも

    RHEL7/CentOS7では、virshコマンドから仮想マシンに対するリソース割り当てを制御できるようになっていますので、そのあたりを説明します。 CPU Pinning 仮想マシンに割り当てた仮想CPUごとに、その仮想CPUが使用する物理コア(その仮想CPUの処理に割り当てられる物理コア)を制限することができます。 たとえば、物理4コアの環境で、仮想CPUを2個割り当てた仮想マシン「vm01」を作成します。デフォルトでは、すべての仮想CPUは、すべての物理コアを使用することができます。 # virsh vcpuinfo vm01 VCPU: 0 CPU: 0 状態: 実行中 CPU 時間: 24.2s CPU アフィニティー: yyyy VCPU: 1 CPU: 3 状態: 実行中 CPU 時間: 5.8s CPU アフィニティー: yyyy上記の「CPUアフィニティー」が、4個の物理

    RHEL7/CentOS7のLinux KVMリソース割り当て機能 - めもめも
  • 割り込み処理

    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 と比 較すると遅い。 デバイスに要求を

    割り込み処理