いいものを見つけたのでコピペ。 yes >> /dev/null & 最後に & お勧め w(二つターミナルが必要でなくなる。) ちなみに メモリ負荷をあげる魔法のコマンド /dev/null < $(yes) & LinuxでCPU負荷を上げる魔法のコマンド - Qiita ">>" は ">" でも良いと思うが、何か特別な理由があって">>"にしているのだろうか。 追記(2014/10/08): ただのメモにはてブがたくさん(当社比)ついてビックリ(^-^; コア数に対する考慮が足りない。 コア数に対する考慮が足りない。 - gomakyuのコメント / はてなブックマーク とコメントを頂いた通り、上記のコマンドを実行しても1つの論理CPUを使い切るだけです。 例えば上の図の通り、1ソケット * 4コア * 2スレッド で論理CPU数が8の場合は、ざっくり、1多重で実行すると12.5%
Linuxの管理をしていると、OSが搭載されているハードウェア情報を取得する事がある。 今回は、そんなときに使えるハードウェア情報を取得するコマンドを紹介する。 1.lscpu CPUに関する情報を取得するコマンド。コア数やスレッド数、仮想に対応しているか否か等の情報を取得出来る。 以下に実行例を記載する。 $ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 コアあたりのスレッド数:1 ソケットあたりのコア数:4 Socket(s): 1 NUMAノード: 1 ベンダーID: GenuineIntel CPUファミリー: 6 モデル: 23 ステッピング: 10 CPU MHz: 2833.596 Bo
今回は Libvirt/KVM のマシンをセットアップしている最中に遭遇したトラブルを紹介してみる。 まず、KVM の動作には CPU が仮想化支援機能 (Intel-VT または AMD-V) をサポートしている必要がある。 なので、それを /proc/cpuinfo から確認した。 Intel CPU の場合は vmx が、AMD CPU の場合は svm が flags の中にあれば良い。 この機能は最近の CPU であれば、よほどの廉価版でない限り付いている。 $ egrep -c '(vmx|svm)' /proc/cpuinfo 8 上記を確認した上で virt-install コマンドでドメインのインストールを試みた所 WARNING が出た。 KVM による高速化が使えないので QEMU を使いますと言っている。 端的に言うと、この状況では壮絶に遅くなる。 $ sudo v
This document discusses various techniques for optimizing KVM performance on Linux systems. It covers CPU and memory optimization through techniques like vCPU pinning, NUMA affinity, transparent huge pages, KSM, and virtio_balloon. For networking, it discusses vhost-net, interrupt handling using MSI/MSI-X, and NAPI. It also covers block device optimization through I/O scheduling, cache mode, and a
自宅のWindows機がお亡くなりになったので、ここらで一つ仮想化でも試してみるかと、Windows 8をノートパソコン上のUbuntu12.04にのっけた。 今回の記事は、Windows 8の導入方法と、ディスクアクセスの高速化について、技術的な情報も含めながら記載している。 細かい環境は、以下の通り。 CPU : Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz メモリ : 4GB ストレージ : SSD 128GB ホストOS : Ubuntu 12.04 ゲストOS : Windows 8 (DSP版) DSP版を仮想環境に入れてもライセンス的に大丈夫ということは公式サイトで確認済み。 とりあえず、最初は仮想マシンの仕組みを簡単に勉強するためにエンジニアなら知っておきたい仮想マシンのしくみを読んだ。センシティブ命令をちゃんとトラップしなきゃいけないと
CPU負荷制限 cpulimit というツールがあり、%指定でそのプロセス(子プロセス含む)のCPUの利用率を制限することができます。例えば infinity という単にシングルスレッドで無限ループするプログラムがあったとして、CPU使用率10%で制限するには以下のようにします。 この10%というのは1論理コアの割合です。100と指定すると論理コア1個分(100%)まで許可することになります。例えば4論理コアの環境ではこの値は0~400まで設定できます。なのでシングルスレッド・シングルプロセスのプログラムであれば100以上指定しても意味はありません。 infinityを2論理コア上で50%で制限すると、以下のようになります。 (↓では論理コア全部を100%として表示してます) 既に走っているプロセスに制限をかけることもできます。
Linux の連続稼働時間が 208.5 日を過ぎた段階で突如 Kernel Panic を引き起こすという過激な挙動で2011年の年の瀬に話題となった "旧208.5日問題" ですが、あれから二年が経った今、Linux Kernel 内の bug と Intel Xeon CPU の bug の合わせ技により再度類似の不具合が発生することが分かっています。 旧 208.5 日問題の発生原理に関しては以下の blog が参考になります。 okkyの銀河制圧奇譚 : sched_clock() overflow after 208.5 days in Linux Kernel 追記(2014/1/4) 新208.5日問題の簡易チェックツールを作成しました。よろしければお使い下さい。 tsc_checker - 新208.5日問題簡易チェックツール また、Linux Kernel における時間
1 ニュース OpenJDK8系の 8u262 以降の版とともに使用しないでください (2020/7/24) OpenJDK 8u262 は、素晴らしいことに、いくつかのディストリビューションで JDK Flight Recorder (JFR) が同梱されました。 しかし、残念なことに、HeapStats は 8u262 以降ではうまく動作しません。 8u262 以降でのJavaヒープの確認には、JFRの使用をお勧めします。 詳しくは、このページの下の実行環境セクションをご参照ください。 こちらもまたご覧ください。 http://icedtea.classpath.org/pipermail/heapstats/2020-July/002457.html {Exit|Crash}OnOutOfMemoryError を HeapStats と共に使わないでください(2019/7/25)
numadの利用(2ソケット以上のハードウェアを利用する場合) 複数ソケットのサーバはNUMA構成なので、できるだけ他ノードへのアクセスを減らしてやるとよい。CPU使用率が高くなるとたまたまちょっとヒマになったCPUにマイグレーションする可能性があがるためnuma nodeにVMを割りあててやりたい。 従来はベンチマークなどでvCPUのpinningなどが使われていたが、人間が指定するのではダイナミックに変化する状況に対応できないためあまり実用的で はなかった。numadはワークロードを見て、メモリとCPUの割り当てをnuma nodeに寄せる作業を自動的におこなってくれる。 起動直後に即座に影響がないのでちょっと気持ちわるい CPUのオーバーコミットをする場合、Xeon 7500/6500 + RHEL 6.2以降の利用(Pause-Loop Exiting対応) あたらしい世代だとどの
dstatの結果をfluentd経由でGrowthForecastに投げる方法は、ぐぐると何件かブログ記事がでてきます。 ただ、どれもdstatを改造したり、プラグインを改造したりしてて、あまり使い勝手がよくありません。 というわけで、gemでいれれるプラグインだけを使って、可視化できる設定を探してみました。 準備 必要なgemをインストールする。 <source> type dstat tag dstat option -cm delay 3 </source> # GrowthForecast用にメッセージを加工する <match dstat> type copy # CPU関連の結果だけを取り出す <store> type map tag "perf.cpu" time time record record['dstat']['total cpu usage'] </store> #
プログラムのボトルネックがどこにあるのか、なんて調べるときには計測する必要がありますね。プログラム中の特定処理の前後でrdtsc命令使って時間を計測して処理時間を求める、とかそういうこともできるんですけど、まあめんどうじゃないですか。プロファイラを使いましょう。 プロファイラとはなんぞや、Wikipediaの性能解析のページに色々書いてますね。 そういうわけでOProfileというLinuxで動くプロファイラを使っているので、未来の自分とか「OProfile動かしてみてーけどさっぱりわからん!」みたいな人のためにまとめておきます。 OProfileの特徴 OProfileは 計測したいプログラムに対して特別な処理をしなくてもいい 低レイヤーの情報も計測できる gprof形式のコールグラフも表示できる オーバーヘッドがとても小さい これらの特徴があるらしいです。使ってみて特に嬉しいと感じたの
1.稼働プロセスのindex番号を調べる ●稼働しているプロセスの名前で判断できる場合 HOST-RESOURCES-MIB::hrSWRunName この値を見ると、稼働しているプロセス名の一覧が取得できる。 例1:HOST-RESOURCES-MIB::hrSWRunName.4861 = STRING: "ntpd" ntpdのプロセスが稼働していることがわかる。 この時、indexの番号(4861)が重要なので記録。 ●稼働しているプロセスのパラメータ値で判断できる場合 同じ名前のプロセス名が複数稼働しているが、起動プロセスのパラメータ値が異なっているような場合は下記のようにindex番号を取得する。 HOST-RESOURCES-MIB::hrSWRunParameters 例2:HOST-RESOURCES-MIB::hrSWRunParameters.6419 = STRIN
勉強のことメインな予定. 頭が弱くてすぐに忘れちゃうので,メモ代わりです! 間違ってることやアドバイスなどあったらぜひお願いします(^-^)♪ (調べたいプロセスの使用時間) / (全体の時間) で算出できます. ●調べたいプロセスの使用時間 /proc/(pid)/stat内の, utime(14番目の値)+stime(15番目の値) で算出可能 ●全体の時間 /proc/stat内のCPU情報 cpu 3357 0 4313 1362393 (左から順に,ユーザーモード,低い優先度 (nice) でのユーザーモード,システムモード,タスク待ち(idle task)) を全て足し合わせた時間 *どちらの値も,積算されているものなので,同じ間隔をとって差をとる必要があります /procの内容に関する詳細は,%man procで見られます. この/proc以下の情報はクロック割り込みごとに値
以前(2010年)に「アプリケーションがマルチスレッドでもマルチコアCPUを活かせない件」というエントリにてCPUのコアが増えても割り込み処理が分散されないのでスケールされないと書いたけど、その後Linux KernelにRPS/RFSなる機能が追加され、割り込み処理が分散できるようになり、CentOS 6.2 でも使えるらしいので試してみました。 RPS/RFSについての紹介は VIOPS06で「RPS・RFS等最新Linux Kernel事例」と題してお話してきました http://d.hatena.ne.jp/syuu1228/20110722/1311322653 Linux内核 RPS/RFS功能详细测试分析 http://www.igigo.net/archives/204 が詳しい。2番目のはほぼ読めないけど、性能比較のグラフが分かりやすい。 今回試したサーバは、 OS: C
お客様各位 さくらインターネット株式会社 平素よりさくらインターネットに格別のご愛顧を賜り、誠にありがとうございます。 先日、2012年7月1日に「うるう秒」が実施されました。 ▼「うるう秒」挿入のお知らせ (独立行政法人 情報通信研究機構) http://www.nict.go.jp/press/2012/01/31-1.html これにより、さまざまなシステムにおけるトラブル等が報告されておりますが、当社の サービスにおける影響についてご報告いたします。 なお、お客様のサーバにおける対応手順につきましては、次の情報をご確認ください。 ▼さくらのVPS CPUの負荷上昇について http://support.sakura.ad.jp/mainte/newsentry.php?id=7771 ▼さくらのクラウド CPUの負荷上昇について http://cloud-news.sakura.a
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く