[Linux] 話題のyesコマンドを試してみた

参考:LinuxでCPU使用率を上げるコマンド

へー、YESコマンドなんてあるんや。

$ man yes

yes(1)                                                                  yes(1)

名前
yes – kill されるまで文字列を繰り返して出力する

書式
yes [string…]

yes [–help] [–version]

説明
yes はコマンドライン引数をスペースで区切って末尾に改行 (newline) を付加し、 kill されるまで繰り返して表示する。引数が一つも与えられないと、 yes は ‘y’ に
改行を付加したものを kill されるまで表示しつづける。

オプション
GNU yes が引数一つだけで起動された場合には、以下のオプションが認識される:

–help 標準出力に使用方法のメッセージを出力して正常終了する。

–version
標準出力にバージョン情報を出力して正常終了する。

なるほど。

実際にCPU使用率が上がるか試してみた。1CPUの環境です。

$ yes > /dev/null &
[1] 27260
$  yes > /dev/null &
[2] 27261

$ vmstat 5

0  0  procs ———–memory———- —swap– —–io—- –system– —–cpu—–
r b swpd free buff cache si so bi bo in cs us sy id wa st
68092 1867280  11212 363364    0    0     0    10  132  113  1  1 91  7  0
0  0  68092 1867652  11224 363364    0    0     0     4   89   96  0  0 87 12  0
0  1  68092 1867036  11264 363384    0    0     0    33  768  504  6  8 62 25  0
0  1  68092 1866604  11320 363404    0    0     0    54  130  141  0  1 64 35  0
1  1  68092 1867280  11348 363424    0    0     0    23   86   96  0  0 89 10  0
3  0  68092 1864180  11348 363428    0    0     0    16 1172  118 57  2 35  6  0★このあたりでコマンド実行
4  0  68092 1836104  11356 363460    0    0     0     3 1700  278 88 12  0  0  0 ★たしかにCPU100%になった
2  0  68092 1866704  11364 363428    0    0     0     8 1759  340 91  9  0  0  0
2  0  68092 1867116  11372 363428    0    0     0     9 1682   99 98  2  0  0  0
2  0  68092 1867264  11380 363428    0    0     0     3 1687   92 97  3  0  0  0
2  0  68092 1864432  11396 363432    0    0     0    27 1754  204 95  5  0  0  0

終わった後は、きちんとkill

$ kill -9 27260 27261
-bash: printf: write error: システムコール割り込み
[1]-  強制終了            yes > /dev/null
[2]+  強制終了            yes > /dev/null

 

おまけ、その1。普通に使ってみた。

$ yes yes we can
yes we can
yes we can
yes we can
yes we can
yes we can
yes we can
yes we can
yes we can
yes we can
yes we can

おー、当時の熱狂を思い出すねw

 

おまけ、その2。

$ yes –version
yes (GNU coreutils) 8.4
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

作者 David MacKenzie.

version 8ってw

 

オバマ Yes We Can! オバマ Yes We Can!
ロバータ・エドワーズ 日当陽子

岩崎書店 2009-01-09
売り上げランキング : 587647

Amazonで詳しく見る by G-Tools

[Linux6] yumでtelnetをインストール&プロキシ設定

■サマリ

OSインストール後の状態でtelnetがインストールされていなかったので、yumでインストールすることにしたが、エラーとなったので色々と調べたらプロキシ環境の場合には、yum自体に事前設定が必要らしい。
 事前設定後に無事にインストール完了。
 ■事象[root@node01 ~]# yum install telnet
(中略)
(28, 'connect() timed out!')
Trying other mirror.

Error Downloading Packages:
  1:telnet-0.17-47.el6_3.1.x86_64: failure: getPackage/telnet-0.17-47.el6_3.1.x86_64.rpm from ol6_latest: [Errno 256] No more mirrors to try.

⇒なんかエラーが出た。

 ■対処
 色々と調べたらプロキシ環境の場合には、yum自体に事前設定が必要らしい。

yumはパッケージ(.rpmファイル)をWeb経由で入手する為にインターネットに接続された環境で使用する必要があります。
作業環境によっては直接インターネットへの接続が許可されておらず、Proxyサーバを通してのみインターネットに接続できる場合もあります。

まず、yum自体のProxy接続設定は以下のどちらかを行う事で可能です。
/etc/yum.confに以下の3行を付け足す。(又はコメントアウトされている箇所を有効にする)
「proxy=http:// Proxyサーバのアドレス:ポート
「proxy_username=Proxy認証のユーザID」(Proxy認証が必要な時のみ)
「proxy_password=Proxy認証のパスワード」(Proxy認証が必要な時のみ)
「export http_proxy=http:// Proxy認証のユーザID:Proxy認証のパスワード@Proxyサーバのアドレス:ポート」を実行。
自分の場合は、proxyの行のみを設定。設定値はホストOSのブラウザの設定を参照。

また、yumでは.rpm自体を入手するのにwgetを使っているので、そちらの設定も必要です。

  1. /etc/wgetrcを編集する
  2. ~/.wgetrcを作成・編集する

ということとなので、こちらも対処。

自分の場合は、http_proxyの行のみを設定。設定値は先ほどと同じ。

・インストール再チャレンジ
[root@node01 ~]# yum install telnet -y
Loaded plugins: refresh-packagekit, security
ol6_UEK_latest                                                                      | 1.2 kB     00:00
ol6_UEK_latest/primary                                                              |  11 MB     00:10
ol6_UEK_latest                                                                                     239/239
ol6_latest                                                                          | 1.4 kB     00:00
ol6_latest/primary                                                                  |  33 MB     00:29
ol6_latest                                                                                     22481/22481
Setting up Install Process
Resolving Dependencies
–> Running transaction check
—> Package telnet.x86_64 1:0.17-47.el6_3.1 will be installed
–> Finished Dependency Resolution
(中略)
Installed:
telnet.x86_64 1:0.17-47.el6_3.1

Complete!

[root@node01 ~]# which telnet
/usr/bin/telnet


■お世話になった参考サイト
・その1

http://www.himajin2001.com/fswiki/wiki.cgi?page=%B5%BB%BD%D1%C5%AA%BB%A8%C3%CC%2Dproxy%B1%DB%A4%B7%A4%CByum%A4%F2%BB%C8%A4%A6

・その2

http://nobuneko.com/blog/archives/2013/05/linux_centos_6_yum_install_telnet.html

[Linux] デバッグ用にgdb をインストールしてみた。

色々とデバッグしてみたくなったので、巷で話題のgdbコマンドをインストールしてみた。

■ファイル入手先
http://www.gnu.org/software/gdb/

ここから最新バージョン(7.5)をダウンロード。

■手順メモ

# tar zxvf gdb-7.5.tar.gz
# cd gdb-7.5
# ./configure
# make
# su
# make install

# [root@red gdb-7.5]# which gdb
/usr/local/bin/gdb

[root@red gdb-7.5]# gdb -v
GNU gdb (GDB) 7.5

時間は5分程度。

デバッグの理論と実践 ―なぜプログラムはうまく動かないのか
Andreas Zeller 中田 秀基

デバッグの理論と実践 ―なぜプログラムはうまく動かないのか
オライリージャパン 2012-12-22
売り上げランキング : 283552

Amazonで詳しく見る by G-Tools

[OS] ハイパー・スレッディング環境下でのCPU使用率の計算方法

ハイパー・スレッディングとは、

Intel社が2001年8月に発表した、マイクロプロセッサの高速化技術。
プロセッサ内のレジスタやパイプライン回路の空き時間を有効利用して、1つのプロセッサをあたかも2つのプロセッサであるかのように見せかける技術。

1つのスレッドが処理を進めている間には、レジスタやパイプラインなどに必ず空き時間が生じる。従来はこうした空き時間は無駄になっていたが、これらのリソースを集めて1つのプロセッサに見せかけることにより、もう1つ別のスレッドの処理を進めるのがHyper-Threadingである。

ハイパースレッディングとは【Hyper-Threading】 – 意味/解説/説明/定義 : IT用語辞典

仮想的に2つのプロセッサが存在することになるので、大量の並列処理などで効果が発揮されるはず。

同じプロセッサ要素(演算器など)を同時に利用できないという制約があるようだが、少なくともハイパー・スレッディングを使用していない場合に比べて120%~200%の性能は期待できると考えて良さそう。

実際に性能検証をされているサイト。
オラクル R&D センター ハイパースレッドはORACLEでどの程度有効なのか

参考になります。

なお、ハイパー・スレッディングを利用した環境では、DB初期化パラメータCPU_COUNTの値は物理プロセッサ数×2で表示されてました。

ちなみに、CPUの数に依存するライセンス数に関しては、ハイパー・スレッディングの有無に関わらず、物理プロセッサ単位で計算するのが通例のようです。
ハイパー・スレッディングCPUのマシンでは「ライセンスは物理プロセッサ単位でカウント」とMSが発表:ITpro

 

プロセッサを支える技術  --果てしなくスピードを追求する世界 (WEB+DB PRESS plus) プロセッサを支える技術  --果てしなくスピードを追求する世界 (WEB+DB PRESS plus)
Hisa Ando技術評論社 2011-01-06
売り上げランキング : 10529Amazonで詳しく見る

by G-Tools