• 締切済み
  • すぐに回答を!

プロセスのCPU使用率のみを切り出したい

httpdプロセスのCPU使用率のみを切り出してshに渡して使用したいのですが、 cut や sed 、その他を使って、どうすれば、うまく切り出せるでしょうか。 #top -b -n 1 |grep httpd  の結果は以下の通り(例として3行のみ)ですが、 CPU使用率は、右から4つ目のフィールドです。 (それぞれ 12.0 3.0 5.1 といった数値の箇所です) cut -d' ' -f 10 などだと、スペースの数が変わるためうまくいきません・・ 32554 apache 15 0 29352 9160 1932 S 12.0 0.9 0:00.00 httpd 325 apache 15 0 2932 9160 1932 S 3.0 0.9 12:00.00 httpd 3255 apache 15 0 29352 9160 1932 S 5.1 0.9 0:00.00 httpd どうぞ宜しく御願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数4
  • 閲覧数203
  • ありがとう数4

みんなの回答

  • 回答No.4
  • k_izumo
  • ベストアンサー率50% (68/134)

Linuxインストール時にどこまでアプリケーションを追加してるか解らないのですが NET-SNMP(UCD-SNMP)のインストールが必要ですね。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。改めてトライしてみます。

  • 回答No.3
  • k_izumo
  • ベストアンサー率50% (68/134)

違った方法ですが snmpwalkで取り出してみてはいかがでしょうか。 TOPで表示できる値は標準MIBに定義されています。 プロセスOID毎にCPU使用率を取り出せると思います。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

-bash: snmpwalk: command not found  となりました。 snmpwalkは別途インストールしないといけないのですかね。

  • 回答No.2
  • Tacosan
  • ベストアンサー率23% (3656/15482)

bash だったら, 例えば top -b -n 1 | grep httpd | while read -a field; do echo ${field[9]}; done なんかでうまくいかないかなぁ? 添え字は 9 か 10 か, どちらかだと思う.

共感・感謝の気持ちを伝えよう!

質問者からのお礼

添え字は 8 でうまく切り出せました! top -b -n 1 | grep httpd | while read -a field; do echo ${field[8]}; done ありがとうございました。

  • 回答No.1

こんにちは。 awkコマンドで取り出してはどうでしょうか。 #top -b -n 1 |grep httpd |awk '{print $10}'

共感・感謝の気持ちを伝えよう!

質問者からのお礼

print $9 で出来ました! top -b -n 1 |grep httpd |awk '{print $9}' で切り出せました!ありがとうございました。

関連するQ&A

  • タスクマネージャーのプロセスとCPU使用率

    Windows Vista Home Premiumを使っています。 タスクマネージャーを開くと左下に「プロセス」「CPU使用率」「物理メモリ」の順にそれぞれの数値が表示されていますが、 ここで「プロセス」の数値は現在実行中のプロセスの総数を表すのですよね。プロセスタブで表示されるプロセスの数がこの数値より少ないのですがこれは何故でしょうか。 また、「CPU使用率」の数値が100%などになっていてもプロセスタブで表示されるプロセスのCPUの値を全て足したら10%位にしかならないときがあるのですが、これは何故だかわかる方がいらっしゃれば教えてください。

  • "http"というプロセスは何ですか?

    CentOS4.1で、Apache2.0のウェブサーバーを使用しています。 夜中に、"top"コマンドを打つと、"http"というプロセスが走っています。 しかも、99.9%のCPU使用率で動いています。 これのせいで、夜間にも関わらずロードアベレージも1以上になっています。 アクセスはほとんどないはずなのに、CPUを大量に使用していることが気になっています。 夜間のみ動いているのも気になります。 この"http"というプロセスは何かご存知の方はいらっしゃいますでしょうか? Apacheのプロセスは"httpd"なので、上記の"http"とは別だと思っています。 lsof -p で"http"のプロセスを調べたところ、perlを使用しているらしいところまでは分かりました。 よろしくお願いいたします。

  • apacheのプロセス数が不安定

    お世話になります。_chihiro_といいます。 apacheに関する質問です。 Linuxにapacheを入れてWebサーバーとして稼動させています。 コマンドで「pstree | grep httpd」と打ったところ、目安ではありますがhttpdプロセス数を見たところ、返ってくる結果が |-httpd---40*[httpd] |-httpd---36*[httpd] |-httpd---57*[httpd] |-httpd---88*[httpd] |-httpd---77*[httpd] |-httpd---49*[httpd] |-httpd---93*[httpd] といったように安定しません。 以前Webサーバーを管理していたときは、 |-httpd---30*[httpd] |-httpd---30*[httpd] |-httpd---30*[httpd] |-httpd---30*[httpd] と、アクセスが集中していなければ一定の数値が返ってきていたのですが、、、。 これは、Apacheの設定がまずいのか、それとも気にすることではないのか調べたのですが、なかなか答えが見つかりません。 経験上、なにか分かる方おられましたら回答よろしくお願いいたします。 -----------OS情報------------- apache-2.2.4 Redhat 7系(?) メモリ 2G -----------apacheの設定(抜粋)------------- KeepAlive On MaxKeepAliveRequests 100 StartServers 10 MinSpareServers 10 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 0

  • 実行中のプロセス数をカウントしたい

    ネットで以下コマンドを見つけて実行しました。 ps -ef | grep -v grep | grep httpd 実行結果は/usr/sbin/htpdが9行表示 この9行をカウントしたい為、 ネットで以下コマンドを見つけて実行しました。 ps -ef | grep -v grep | grep httpd | wc 実行結果は『9 72 576』が表示 上記の結果で9のみを表示させるコマンドがあれば 教えていただけないでしょうか。 また、実際にカウントしたいプロセスは以下例のように 半角スペースと()をふくんでおり 上記httpdのようにうまくいきませんでした。 例:test (rei) 半角スペースと()を含んだプロセス数をカウントするコマンドがあれば 教えていただけないでしょうか。

  • TOPコマンドで表示するCPU使用率で100%以上の表示について

    皆さんこんにちは。 TOPコマンドに関して、 分からないことがあり質問させていただきます。 特定のプロセスのCPU使用率が知りたく、 TOPコマンドに、grepをかけて、 そのプロセスのみのCPU使用率を見ていましたが、 「135.1%」とか、「120.9%」と、 100%を超える値を表示するプロセスがあるのですが、 これはどうしてか、 分からないでいます。 どなたか教えていただけるとありがたいです。 どんな要素が原因として考えられるものでしょうか? OS:fedora9 CPU:Intel(R) Pentium(R) 4

  • プロセスを複数起動する方法

    プロセス数の上限監視の検証を行うことになり、上限値以上のプロセス数を 起動させる必要が生じました。 具体的なプロセスは ・httpd (上限:200) ・ntpd (上限:1) ・crond (上限:1) ・HeartBeat (上限:6) の4つです。このうち、httpdについてはhttpd.conf内のStartServers及び MinSpareServersの値を変更することで解決しました。 しかし後3つのプロセスについて、プロセス数を増やす方法がわかりません。 尚、上限監視のロジックはps -ef | grep [プロセス名]で行数をカウントするという ものですので、psコマンドで表示されればゾンビでも何でも構いません・・ 宜しくご教示お願いいたします。

  • あるSNSに接続するとPCのCPU使用率が上がります。

    質問です。 あるSNSにアクセスし、ログインするとPCのCPU使用率がグンと上がり、 SNSへアクセスしているブラウザのプロセスが50%以上を巡航します。 違う場所から接続しても現象は同じです。 SNS自体はopenPNEで作られているのですが、 原因としては何が考えられるでしょうか? サーバーにログインしtopコマンドで確認するとmysqldプロセスが かなり長い時間稼動していること以外は何も暴走したりしていません。 httpdのerror_logを確認してもこれといったエラーは出ていません。 どんな小さな情報でも結構なので(指名手配みたいですが^^;) 原因について教えてください。

    • ベストアンサー
    • PHP
  • Linuxのメモリの関して

    質問1: freeというコマンドで見たところ、freeが少ないで、大半がcachedとして 使われているそうです。 このcachedに使われたメモリはどんなコマンドで解放することできるでしょうか? 質問2: topというコマンドで見たところ、httpdというプロセスが沢山のメモリ使っている(ひとつのhttpdプロセスは140MBぐらい)そうです、このhttpdはApacheのプロセスで、どうしてこんなに沢山メモリ使うでしょうか? 以上、どうぞよろしくお願いします。

  • PSコマンド

    RedHat,Apacheを使用中 ps -aux|grep httpdとしました。 その内容でstartに相当する部分についての質問です。 出力された内容 一番上の行にroot 数日前の日付のhttpdが複数あり 本日の時間のhttpd 最後にgrep httpdとありました。 私程度では以下のような仮説を立てるくらいしか出来ず 調べても良く分かりませんでした。 (1)誰かがつなげっぱなし? (2)ゴミプロセス? (3)他のアプリ(サービス等)でhttpdを握っている? 漠然とした内容で申し訳ありませんが、なんなのか調べたいのでお知恵を拝借させてください。 詳しい内容は記載出来ませんので調べ方(切り分け方)をご教授願います。

  • 原因不明の半角スペースの追加現象

    今年から仕事でシェルスクリプトでコーディングすることになり初めて触る言語なので日々勉強しているのですが、どうしても解決方法の見つからないものが出てきてしまったので質問させて頂きます。 ファイルから行を読み込んでsql文に追加入力しようとしているのですが、抽出した単語にシングルクォーテーションを付ける際、半角スペースが一文字分シングルクォーテーション内部に出来てしまいます。 以下例です。 aaa.txt←読み込むファイル aaa,bbb,ccc,ddd←ファイル内容の簡略版 ・ ・ ・ #!/bin/sh while read LINE;do CUT1=`echo ${LINE} | cut -d , -f1`←※1 echo \'${CUT1}\'>>bbb.txt←※2 CUT2=・・・       ・       ・   同じことを繰り返す       ・ done<aaa.txt 結果 bbb.txt 'aaa ''bbb ''ccc '・・・ ※1:この部分は少々曖昧ですが、LINEに読み込んだ行の1番目のフィールド(今回の例ではaaa)を抽出してCUT1に入れようとしています。 まだまだ未熟者の為ソースがおかしいかもしれませんが、今回はそのことに関しては気にしないでください。 プログラム自体はきちんと走っています。 問題になっている点は※2の部分で、シングルクォーテーションを付けると勝手に半角スペースが追加されてしまいます。 CUT1には「aaa」と半角スペースのない状態で入っています。 sedを使ってスペースをなくそうかとも考えたのですが、何分データ量がすごい数なので少しでも走らせるプログラムを減らしたいのです。 sed以外で半角スペースをなくす方法はありますでしょうか? また、これはどんな理由で半角スペースが入ってしまうのか原因もわかりますでしょうか? 簡単な質問ですが、ご教授の方よろしくお願いいたします。 一応sedでの半角スペースを削除する方法もご教授頂けたら幸いです。