
我正在使用桌面環境運行 ubuntu server 10.10。
即使透過本地網路連接到伺服器,簡單的頁面請求也需要 5 秒以上。
我相信這部分與安裝桌面環境有關,因為伺服器運行速度更快(但考慮到它位於本地網路上,速度沒有應有的快),但tasksel每次都會失敗(aptitude失敗100)。我對網路和 Linux 的了解總體上是有限的。非常感謝有關如何解決此問題的想法。
喔還有,在系統監視器中,其中一個處理器幾乎總是在 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」輸出中的另一個指示是「Cpu」行:它顯示是否為使用者、系統、正常或等待進程佔用了系統資源。如果沒有明確的進程消耗您的 CPU,則可能是某些 IO 阻塞(等待),例如由於磁碟機故障或磁碟機崩潰(通常是由於某些硬體故障)。查看“dmesg”命令或“/var/log/messages”檔案的輸出來識別內核驅動程式崩潰或 Oopses 或崩潰:
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
另一種可能性是即將失效的驅動器上出現 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 發出嘎嘎聲,抱怨軟體包的依賴關係未得到滿足。這看起來既愚蠢又煩人,但可以透過刪除所有依賴套件並重試來解決,可以嘗試多次,直到它們全部消失。