我的 Linux 服务器启动需要一个多小时。有什么建议吗?

我的 Linux 服务器启动需要一个多小时。有什么建议吗?

我正在构建一个 CentOS 5.4 系统,它使用模拟 IDE 驱动器的读卡器从紧凑型闪存卡启动。启动过程实际上需要大约一个小时。最慢的部分发生在 Grub 加载内核时。完成之后,其余的启动过程只需要大约一分钟就可以到达登录提示。有人有什么建议吗?

我怀疑这可能与 UDMA 有关。我的 BIOS 中与 IDE 相关的所有东西似乎都正常。读取性能 hdparm 告诉我 1.77 MB/s。哎哟!(但即使以这样的速度,解压和加载内核也不应该花一个小时)

 [root@server ~]# hdparm -tT /dev/hdc

/dev/hdc:
 Timing cached reads:   2444 MB in  2.00 seconds = 1222.04 MB/sec
 Timing buffered disk reads:    6 MB in  3.39 seconds =   1.77 MB/sec

但尝试启用 DMA 是不可行的:

[root@server ~]# hdparm -d1 /dev/hdc

/dev/hdc:
 setting using_dma to 1 (on)
 HDIO_SET_DMA failed: Operation not permitted
 using_dma    =  0 (off)

以下是一些可能有帮助的命令输出:

系统

[root@server ~]# uname -a
Linux server.localdomain 2.6.18-164.el5xen #1 SMP Thu Sep 3 04:47:32 EDT 2009 i686 i686 i386 GNU/Linux

PCI 信息:

[root@server ~]# lspci -v
00:00.0 Host bridge: Intel Corporation 82945G/GZ/P/PL Memory Controller Hub (rev 02)
        Subsystem: Intel Corporation 82945G/GZ/P/PL Memory Controller Hub
        Flags: bus master, fast devsel, latency 0
        Capabilities: [e0] Vendor Specific Information

00:02.0 VGA compatible controller: Intel Corporation 82945G/GZ Integrated Graphics Controller (rev 02) (prog-if 00 [VGA controller])
        Subsystem: Intel Corporation 82945G/GZ Integrated Graphics Controller
        Flags: bus master, fast devsel, latency 0, IRQ 10
        Memory at fdf00000 (32-bit, non-prefetchable) [size=512K]
        I/O ports at ff00 [size=8]
        Memory at d0000000 (32-bit, prefetchable) [size=256M]
        Memory at fdf80000 (32-bit, non-prefetchable) [size=256K]
        Capabilities: [90] Message Signalled Interrupts: 64bit- Queue=0/0 Enable-
        Capabilities: [d0] Power Management version 2

00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 01) (prog-if 00 [UHCI])
        Subsystem: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1
        Flags: bus master, medium devsel, latency 0, IRQ 16
        I/O ports at fe00 [size=32]

00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 01) (prog-if 00 [UHCI])
        Subsystem: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2
        Flags: bus master, medium devsel, latency 0, IRQ 17
        I/O ports at fd00 [size=32]

00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 01) (prog-if 00 [UHCI])
        Subsystem: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3
        Flags: bus master, medium devsel, latency 0, IRQ 18
        I/O ports at fc00 [size=32]

00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 01) (prog-if 00 [UHCI])
        Subsystem: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4
        Flags: bus master, medium devsel, latency 0, IRQ 19
        I/O ports at fb00 [size=32]

00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01) (prog-if 20 [EHCI])
        Subsystem: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller
        Flags: bus master, medium devsel, latency 0, IRQ 16
        Memory at fdfff000 (32-bit, non-prefetchable) [size=1K]
        Capabilities: [50] Power Management version 2
        Capabilities: [58] Debug port

00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1) (prog-if 01 [Subtractive decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=32
        I/O behind bridge: 0000d000-0000dfff
        Memory behind bridge: fde00000-fdefffff
        Prefetchable memory behind bridge: 00000000fdd00000-00000000fdd00000
        Capabilities: [50] #0d [0000]

00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)
        Subsystem: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge
        Flags: bus master, medium devsel, latency 0
        Capabilities: [e0] Vendor Specific Information

00:1f.2 IDE interface: Intel Corporation 82801GB/GR/GH (ICH7 Family) SATA IDE Controller (rev 01) (prog-if 80 [Master])
        Subsystem: Intel Corporation 82801GB/GR/GH (ICH7 Family) SATA IDE Controller
        Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 17
        I/O ports at <unassigned>
        I/O ports at <unassigned>
        I/O ports at <unassigned>
        I/O ports at <unassigned>
        I/O ports at f800 [size=16]
        Capabilities: [70] Power Management version 2

00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)
        Subsystem: Intel Corporation 82801G (ICH7 Family) SMBus Controller
        Flags: medium devsel, IRQ 17
        I/O ports at 0500 [size=32]

01:04.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
        Subsystem: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
        Flags: bus master, medium devsel, latency 32, IRQ 18
        I/O ports at de00 [size=256]
        Memory at fdeff000 (32-bit, non-prefetchable) [size=256]
        Capabilities: [50] Power Management version 2

01:06.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
        Subsystem: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
        Flags: bus master, medium devsel, latency 32, IRQ 17
        I/O ports at dc00 [size=256]
        Memory at fdefe000 (32-bit, non-prefetchable) [size=256]
        Capabilities: [50] Power Management version 2

01:07.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
        Subsystem: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
        Flags: bus master, medium devsel, latency 32, IRQ 19
        I/O ports at da00 [size=256]
        Memory at fdefd000 (32-bit, non-prefetchable) [size=256]
        Capabilities: [50] Power Management version 2

hdparm 输出:

[root@server ~]# hdparm  /dev/hdc   

/dev/hdc:
 multcount    =  0 (off)
 IO_support   =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  0 (off)
 keepsettings =  0 (off)
 readonly     =  0 (off)
 readahead    = 256 (on)
 geometry     = 8146/16/63, sectors = 8211168, start = 0

[root@server ~]# hdparm -I /dev/hdc

/dev/hdc:

ATA device, with non-removable media
        Model Number:       InnoDisk Corp. - iCF4000 4GB            
        Serial Number:      20091023AACA70000753
        Firmware Revision:  081107  
Standards:
        Supported: 5 
        Likely used: 6
Configuration:
        Logical         max     current
        cylinders       8146    8146
        heads           16      16
        sectors/track   63      63
        --
        CHS current addressable sectors:    8211168
        LBA    user addressable sectors:    8211168
        device size with M = 1024*1024:        4009 MBytes
        device size with M = 1000*1000:        4204 MBytes (4 GB)
Capabilities:
        LBA, IORDY(can be disabled)
        Standby timer values: spec'd by Vendor
        R/W multiple sector transfer: Max = 2   Current = 2
        DMA: mdma0 mdma1 mdma2 udma0 udma1 *udma2 udma3 udma4 
             Cycle time: min=120ns recommended=120ns
        PIO: pio0 pio1 pio2 pio3 pio4 
             Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
        Enabled Supported:
           *    Power Management feature set
           *    WRITE_BUFFER command
           *    READ_BUFFER command
           *    NOP cmd
           *    CFA feature set
           *    Mandatory FLUSH_CACHE
HW reset results:
        CBLID- above Vih
        Device num = 0
CFA power mode 1:
        enabled and required by some commands
        Maximum current = 100ma
Checksum: correct

编辑: 大约需要 5 分钟才能跳过“GRUB 加载阶段 2...”消息。我得出的结论是,问题可能是:引导加载程序、BIOS/固件或硬件问题。我尝试了所有相关的 BIOS 设置,但都无济于事,并且更换了我的 IDE 电缆以防万一。我订购了一张新的紧凑型闪存卡(不同品牌),但要过几天才能到。我目前还在运行 Memtest86,以查看我的 RAM 是否存在奇怪的问题。完成后,我会查看是否有适用于我的主板的固件更新。

答案1

问题解决了!

说来也怪,禁用BIOS 中的 UDMA 解决了该问题。

感谢这个 Ubuntu 主题谢谢你的回答。也感谢这里所有人的建议!

答案2

您很可能没有在内核中安装正确的驱动程序。另外,请确保您的 IDE 控制器已在 BIOS 中启用。

否则,请发布/var/log/dmesg 的内容

谢谢

答案3

testload在内核文件上尝试 GRUB命令 - 这也很慢吗?

答案4

我感觉你的磁盘缓冲区很慢!!其余的东西对我来说看起来还不错。

Timing buffered disk reads:    6 MB in  3.39 seconds =   1.77 MB/sec

以下是我运行的带有 SATA 的服务器

[root@rajat Rajat]# hdparm -tT /dev/sda 

/dev/sda:
 Timing cached reads:   2368 MB in  2.00 seconds = 1184.65 MB/sec
 Timing buffered disk reads:  198 MB in  3.01 seconds =  65.73 MB/sec

相关内容