FreeBSDでps auxコマンドを実行した時の表示で、%CPU欄と%MEM欄の合計がどのくらいになった時に「重い」と感じるものなのでしょうか。自分が何もプロセスを走らせていない時にコマンドを実行してだいたい%CPUの合計は60、%MEMの合計は40くらいです。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

%CPU の値は、本当にアクティブなプロセスを何も動かしてなけれ


ば、合計はほぼ 0.0 になるはずです。

ただし、その一瞬でも CPU への割当てがあればカウントされます
から、ps コマンド、その結果を見る more/less コマンド、その集
計をする awk/perl コマンドのせいで、はね上がることがあります。
60 というのはどのコマンドが占めていましたか?ps に -c オプショ
ンをつけるか、-w オプションをつければわかりやすいと思います。

そして、CPUが1個のシステムであれば、どんなに重くなったとして
も %CPUの合計が 100 を超えることはありません(psコマンドの仕
様で256分率を使っているものは別)。ですから、重さの目安とし
ては使えないでしょう。

また、%MEM の方も、実メモリの使用率ですから、どんなに重くなっ
ても 100 を超えません。やはりあまり目安にはならないでしょうね。

1Yenさんのいうように、まずは load average が重要です。これは
何個のプロセスが CPU の割り当てを待っているかを表す値で、こ
れが大きいほどなかなか自分のプロセスにCPUがまわって来ないの
で重くなるというわけです。

あとは、通常のファイルアクセスが非常に多ければ、やはり重くな
りますね。

それ以外には、実メモリに入り切らないデータは仮想メモリに
swap されてしまいますが、仮想メモリへのアクセスが頻発する状
況になると極端に重くなります。VSZ は、使用している総メモリ量
ですが、このうち、RSS の分だけ実メモリに入っています。%MEM
はほぼこれに比例しているはずです(ただし、コード部は共有され
ているので、若干異なる)。つまり、VSZとRSSの差だけ、ディスク
のswap領域にデータを持っているのですが、そのプロセスがアクティ
ブだと重くなる可能性が高まります。

ファイルであれスワップであれ、ディスクアクセスの頻度を見るのは
iostat コマンドです。
    • good
    • 0

ps -aux の値をいちいち全部足すのって面倒じゃありません?ま、awk なり perl なりで処理させればいいんでしょうけど(^^;


ps -aux の値がどうかは分かりませんが、ふつうは uptime のコマンドを叩いて load avrage が3~5を越えた辺りから重く感じるのではないでしょうか。
あるサーチエンジンのサイトでは、load average が 200 を越えてもふつうに ls などが実行できたので環境にも依ると思いますが(そのサイトは Solaris でした)
FreeBSD上では load average 80 位まで出したことがありますが、uptime の表示が出るまで数十分かかりました(^^;;;;;
ちなみに、topでも load average の値は見ることができますよ。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QpsをCPU、MEMの使用率の多い順に表示 ( ps -aux )

コマンド"ps"を
CPUの使用率や、メモリの使用容量の順に並べるオプションってあります?

Aベストアンサー

これでいけると思います。

# ps -aux | sort -n 並べ変えたい行

Qlprコマンド(印刷)を実行すると、lprコマンド実行ログを取るように

lprコマンド(印刷)を実行すると、lprコマンド実行ログを取るようにしたい。

osはCentOSです。このCentOS上からlprコマンドを実行すると
指定されたプリンタから印刷されます。ログも取りたいと思い、
CentOS上にて、/etc/syslog.confに、
lpr.* /var/log/lpr.log
を追記し、syslogを再起動させました。しかし、
プリンタからlprコマンドで印刷をしてもログは記録されません。
利用できるファシリティにlprはあるはずなのですが・・・。

プリンタの実行ログを作成するには何か足りない設定があるのでしょうか?

Aベストアンサー

CUPSの設定ファイル /etc/cupsd.conf に LogLevel の設定があります。
そのLogLevelの設定を LogLevel info に書き換えて、CUPSのサービスを再起動して下さい。

Qat コマンドで同時刻に登録されたプロセスの実行について

このカテで良いのか迷いましたが質問させていただきます。

タイマー設定でメールを送信したいと思っています。
Webアプリケーション(Apache+PHP)で利用者が時刻を指定して
登録をすると、指定した時刻にメールが送信される仕組みです。
そこで、登録が発生したタイミングで at コマンド(シェル)を
発行し、atキューに溜める方式を取ろうと考えています。

仮に、同一時刻に数千件のat コマンドが登録された場合、
- それらのコマンドは同時に実行されるのでしょうか?
- それとも登録された順等にシーケンシャルに実行されるのでしょうか?

前者の場合、数千件のプロセスが一時に同時に起動してしまう
自体は避けたいと思うので他の策を練ろうと思います。

ちなみにMTAはqmailです。

また、Webアプリケーションからの登録でタイマーメール送信をする際の
at 登録以外の方式がありましたらご教授ください。

よろしくお願いします。

Aベストアンサー

「シーケンシャルに」という意味が、1つのコマンドの実行完了を待って次のコマンドを実行するという意味なら、違います。
厳密な順序はわかりませんが、同時刻に登録されたコマンドなら、並行して実行されます。

データベースに登録などして、crontabジョブでデータベース検索して送るんでしょうかね。

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

皆さんこんにちは。
TOPコマンドに関して、
分からないことがあり質問させていただきます。

特定のプロセスのCPU使用率が知りたく、
TOPコマンドに、grepをかけて、
そのプロセスのみのCPU使用率を見ていましたが、

「135.1%」とか、「120.9%」と、
100%を超える値を表示するプロセスがあるのですが、
これはどうしてか、
分からないでいます。

どなたか教えていただけるとありがたいです。
どんな要素が原因として考えられるものでしょうか?

OS:fedora9
CPU:Intel(R) Pentium(R) 4

Aベストアンサー

topで表示されるCPU使用率は、論理プロセッサ1台あたりのCPU時間を100%として計算されています。

ハイパースレッディングを有効にしている場合やマルチコアプロセッサでは、CPU使用率が100%を超えるのもさほど珍しい現象ではありません。

参考URL:http://codezine.jp/unixdic/w/top/

Qbashスクリプト内で、あるコマンドの出力を、コマンドとして実行する方法

bashスクリプト内で、あるコマンドの出力内容自体がbashコマンドの羅列となっており、
これをコマンドとして実行したいです。

より正確に言うと、コマンドの出力内容は外部コマンドでなく、変数の設定文になっています。
したがって、同じシェル内で実行できないと意味がありません。

以下の方法なら間違いなくできるはずですが、
もっとスマートな方法を知りたいです。

あるコマンド > テンポラリファイル
source テンポラリファイル
rm テンポラリファイル

Aベストアンサー

ご質問のような使い方を想定したコマンドに resize(1) があります。
https://www.x.org/archive//X11R6.8.2/doc/resize.1.html

これは
eval `resize`
等として使うことを想定してます。

そのまま実行すると、例えば次のように出力されます。
COLUMNS=92;
LINES=48;
export COLUMNS LINES;

バッククオートで、改行が空白になっても、 セミコロンがあるので、
COLUMNS=92; LINES=48; export COLUMNS LINES;
と、改行有りのときと同じコマンドを実行することになります。


あなたのスクリプトも同様にセミコロンを付けて出力するとか、 sed等で行末にセミコロンを追加するとかするのはどうでしょうか?

# なお、コメントはセミコロンも無効にしてしまうので、出力しないようにするか、sed等で取り除いておくのがよいでしょう


このカテゴリの人気Q&Aランキング

おすすめ情報