何らかの理由で、FreeBSDシステムのCPU使用率全体は1%から85%の間で変動しますが、プロセス列のCPU使用率は決してその量に達しません。たとえば、CPU使用率全体は83.5%ですが、プロセスリストのCPU使用率は2%未満です。
last pid: 22965; load averages: 1.45, 1.72, 3.06 up 151+20:08:57 12:32:38
137 processes: 2 running, 135 sleeping
CPU: 83.5% user, 0.0% nice, 12.8% system, 0.0% interrupt, 3.8% idle
Mem: 222M Active, 88M Inact, 315M Wired, 16M Cache, 110M Buf, 342M Free
Swap: 1996M Total, 30M Used, 1966M Free, 1% Inuse
PID USERNAME THR PRI NICE SIZE RES STATE TIME CPU COMMAND
22965 martin 1 96 0 7704K 4172K RUN 0:00 1.27% snmpset
1234 root 1 44 0 3804K 1068K select 50:36 0.00% hald-addon-storage
1204 haldaemon 1 44 0 7236K 2300K select 24:13 0.00% hald
1135 root 1 44 0 3372K 928K nanslp 9:34 0.00% cron
46828 martin 1 44 0 11844K 4140K select 6:06 0.00% irssi
407 _pflogd 1 44 0 3528K 604K bpf 5:41 0.00% pflogd
86984 root 1 44 0 5284K 996K select 5:14 0.00% gam_server
95843 martin 1 76 0 4560K 1192K wait 5:03 0.00% bash
6714 martin 1 44 0 5748K 2512K select 4:46 0.00% screen
775 root 1 44 0 3344K 532K select 3:48 0.00% syslogd
これら2つの分野はどうCPU
違いますか?この動作の原因は何ですか?合計CPU使用量が60〜80%程度になると、機器の応答速度が確実に遅くなります。
編集する:
top
Shift + s
また、ifカーネルスレッド()の出力も表示されます。
last pid: 54866; load averages: 0.62, 0.90, 1.02 up 153+19:26:17 11:49:58
208 processes: 3 running, 188 sleeping, 17 waiting
CPU: 75.3% user, 0.0% nice, 12.4% system, 0.0% interrupt, 12.4% idle
Mem: 395M Active, 154M Inact, 324M Wired, 16M Cache, 110M Buf, 94M Free
Swap: 1996M Total, 112M Used, 1883M Free, 5% Inuse, 8K In
PID USERNAME THR PRI NICE SIZE RES STATE TIME CPU COMMAND
11 root 1 171 ki31 0K 8K RUN 2809.4 52.78% idle
54866 martin 1 96 0 6680K 3548K RUN 0:00 0.98% snmpset
15836 root 1 44 0 322M 307M select 31:51 0.29% Xorg
12 root 17 -60 - 0K 136K WAIT 455:55 0.00% intr
17 root 1 44 - 0K 8K syncer 162:57 0.00% syncer
1234 root 1 44 0 3804K 1068K select 51:16 0.00% hald-addon-storage
3 root 1 -8 - 0K 8K - 27:06 0.00% g_up
1204 haldaemon 1 44 0 7236K 2268K select 24:32 0.00% hald
4 root 1 -8 - 0K 8K - 23:52 0.00% g_down
13 root 1 -16 - 0K 8K - 20:20 0.00% yarrow
14 root 20 -64 - 0K 160K - 14:37 0.00% usb
2 root 1 -8 - 0K 8K - 10:42 0.00% g_event
答え1
基本top
的にユーザープロセス(つまり、カーネルとそのスレッド以外のプロセス)カーネルはディスクまたはネットワークIOによって使用されている可能性がありますが、top
ディスプレイには表示されません。top
を押してカーネルスレッドの表示を切り替えることができますSHIFTs。
このvmstat
ユーティリティを使用すると、システム起動後のネットワークおよびディスクアクティビティ(特に)に関する統計を表示できます。vmstat -i
起動後に各デバイスが受信した割り込みの数は、1秒あたりの割り込みが受信される平均速度で表示されます。vmstat -p da
ディスクが何をしているかを確認するために使用されます。
iostat
、systat
などの他のツールnetstat
も豊富な情報を提供できます。
スケジューラー構成を調整して、ロード時のシステムの応答性を向上させることができます。今すぐ変更するには、sysctl kern.sched.preempt_thresh=240
rootとして実行してください。起動時に同じ設定を適用するには、に追加する/etc/sysctl.conf
必要があります。これは役に立ちますが、ワークロードとハードウェアの特性によって効率が制限されることに注意してください。