
デスクトップ環境でUbuntu Server 10.10を実行しています。
ローカル ネットワーク経由でサーバーに接続する場合でも、単純なページ リクエストに 5 秒以上かかります。
これはデスクトップ環境がインストールされていることに部分的に関係していると思います。サーバーはより高速に動作しましたが (ローカル ネットワーク上にあることを考慮すると、期待するほど高速ではありません)、tasksel は毎回失敗します (aptitude は 100 で失敗しました)。ネットワークと Linux 全般に関する私の知識は限られています。この問題のトラブルシューティング方法についてのアイデアをいただければ幸いです。
ああ、また、システム モニターでは、プロセッサの 1 つがほぼ常に 100% 前後になっています。これも正常ではないと思います...
答え1
実際には問題があるはずです... Ubuntuサーバーの詳細はわかりませんが、Debianでは次のコマンドでGUIをオフにします。
/etc/init.d/gdm stop
次に、CPU の負荷についてですが、これは何らかの異常なプロセスがおかしくなったか (おそらくグラフィカル環境)、またはカーネル ドライバーがクラッシュしたかのいずれかです。まず、コマンドを使用して、top
どのプロセスが CPU パワーを消費しているかを特定します。以下は、プロセス (「dnetc」) が CPU を完全に負荷している「top」出力の例です。
top - 18:11:54 up 157 days, 7:47, 3 users, load average: 1.07, 1.25, 1.25
Tasks: 122 total, 2 running, 120 sleeping, 0 stopped, 0 zombie
Cpu(s): 4.7%us, 1.0%sy, 94.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Mem: 1034424k total, 971320k used, 63104k free, 61636k buffers
Swap: 8000352k total, 116816k used, 7883536k free, 202912k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5059 emmanuel 39 19 7780 4364 184 R 94.4 0.4 6919:54 dnetc
16077 root 20 0 117m 53m 6728 S 2.7 5.3 10:45.67 X
17783 emmanuel 20 0 990m 487m 30m S 2.3 48.3 20:11.99 firefox
17606 emmanuel 20 0 9340 5368 3248 S 0.7 0.5 0:02.82 wmaker
「top」出力のもう 1 つの指標は、「Cpu」行です。これは、システム リソースを消費しているのがユーザー、システム、nice、または待機中のプロセスであるかどうかを示します。CPU を消費している明確なプロセスがない場合は、たとえばドライブの障害やドライバーのクラッシュ (多くの場合、ハードウェアの障害が原因) などにより、IO (待機) がブロックされている可能性があります。カーネル ドライバーのクラッシュや Oopses またはクラッシュを識別するには、「dmesg」コマンドまたは「/var/log/messages」ファイルからの出力を参照してください。
CPU 3:
Modules linked in: pvfs2 bonding md_mod ipv6 fan ac battery dm_snapshot dm_mirror dm_mod af_packet sg loop usbhid uhci_hc
d usb_storage e1000 8250_pnp 8250 serial_core rtc shpchp pcspkr k8temp i2c_nforce2 button pci_hotplug thermal processor i2c_core ehci_hcd forcedeth ohci_hcd u
sbcore evdev 3w_9xxx sata_nv libata
Pid: 12124, comm: pvfs2-client-co Tainted: G D 2.6.24.7-storiq64-opteron #1
RIP: 0010:[<ffffffff80502ad7>] [<ffffffff80502ad7>] _spin_lock+0x7/0x10
RSP: 0018:ffff8102a48e3ec0 EFLAGS: 00000286
RAX: 00000000fffffe53 RBX: 00000000fffffe53 RCX: ffff8102a48e3f50
RDX: 00000000fffffe53 RSI: 00000000000001fd RDI: ffff81041692d7e0
RBP: ffff81000104b600 R08: ffff810414c8d928 R09: ffff810414c8d900
R10: 0000000000000000 R11: 0000000000000202 R12: ffff81000104fa20
R13: 0000000000000000 R14: ffff810236df1018 R15: ffff810417662b80
FS: 00002b365c208ae0(0000) GS:ffff81041811f640(0000) knlGS:00000000f7ddf8e0
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000000628288 CR3: 000000029b6ef000 CR4: 00000000000006a0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Call Trace:
[<ffffffff881e481f>] :pvfs2:pvfs2_devreq_read+0x1cf/0x400
[<ffffffff802954f5>] vfs_read+0xc5/0x160
[<ffffffff802959d3>] sys_read+0x53/0x90
[<ffffffff8020bc1e>] system_call+0x7e/0x83
もう 1 つの可能性は、次のような、故障したドライブでの IO エラーです。
Apr 30 04:05:26 linux kernel: end_request: I/O error, dev /dev/sda sector 53445
さて、この問題を修正するにはどうすればよいでしょうか。ユーザー プログラムがおかしくなった場合は、単にそれを強制終了します。まず、 または を使用して丁寧に強制終了します。kill <process ID>
たとえばkillall <program name>
、前に見た 'top' 出力から 'dnetc' プログラムを終了するには、 または のいずれかを実行します。
kill 5059
killall dnetc
しかし、修復不可能なほど壊れているために応答しない可能性もあります。その場合は、またはで強制終了する必要がありますkill -9 <pid>
。killall -9 <program name>
kill -9 5059
killall -9 dnetc
ドライバーやカーネルに欠陥がある場合はどうでしょうか? 残念ながら、再起動する以外に修復できる方法はありません。 故障したドライブについては、交換するしかありません。
答え2
デスクトップマネージャは で削除できますapt-get remove gdm
。さらにGNOMEをすべて削除したい場合は(GUIを実行していない場合はおそらく良い考えです)、
apt-get remove libgtk2.0-0
Debian では、上記の操作により、libgtk2.0-0 に依存するすべてのパッケージ (つまり、GNOME 全体) も削除されます。しかし、Ubuntu ホストでこれを実行しようとすると、apt-get が失敗し、依存関係が満たされていないパッケージについてエラーを出します。これは馬鹿げていて面倒に思えますが、依存パッケージをすべて削除して再試行することで回避できます。これをすべて削除するまで何度でも繰り返します。