今天我开始遇到 php/web 服务器问题。
我在 php-fpm 日志中看到很多段错误消息。起初我以为是某些 php 模块的版本不兼容问题,但是apt-get update
,apt-get upgrade
还随机报告了Segmentation faulty tree
等等。
此刻我发现我的硬盘速度极慢。
我不知道为什么硬盘速度低于 5 MB/s...
一些技术细节:
root@portex:/var/log/fsck# hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 8 MB in 3.01 seconds = 2.65 MB/sec
在此之前一切都运行良好(大约一年)。
我正在使用 mdadm RAID-1,并尝试更改位图选项(如所述提示 #5),甚至移除一个硬盘并再次添加 - 但没用。
mdadm 输出:
root@portex:/var/log/fsck# mdadm -D /dev/md0
/dev/md0:
Version : 0.90
Creation Time : Fri Oct 26 22:39:25 2012
Raid Level : raid1
Array Size : 488386496 (465.76 GiB 500.11 GB)
Used Dev Size : 488386496 (465.76 GiB 500.11 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Sat Apr 12 14:06:35 2014
State : clean, degraded, recovering
Active Devices : 1
Working Devices : 2
Failed Devices : 0
Spare Devices : 1
Rebuild Status : 9% complete
UUID : 157b06cd:e27f8486:c3ede18e:95b605a2 (local to host portex)
Events : 0.2874
Number Major Minor RaidDevice State
2 8 16 0 spare rebuilding /dev/sdb
1 8 0 1 active sync /dev/sda
hdparm 输出:
root@portex:/var/log/fsck# hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 6 MB in 3.81 seconds = 1.58 MB/sec
root@portex:/var/log/fsck# hdparm -t /dev/sdb
/dev/sdb:
Timing buffered disk reads: 6 MB in 7.36 seconds = 834.54 kB/sec
hdparm -i 输出:
root@portex:/var/log/fsck# hdparm -i /dev/sda
/dev/sda:
Model=ST500DM002-1BD142, FwRev=KC45, SerialNo=Z3T3TKNH
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
BuffType=unknown, BuffSize=16384kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=976773168
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
AdvancedPM=no WriteCache=enabled
Drive conforms to: unknown: ATA/ATAPI-4,5,6,7
* signifies the current active mode
操作系统版本:
root@portex:/var/log/fsck# cat /etc/debian_version
6.0.9
更新
iostat 输出:
avg-cpu: %user %nice %system %iowait %steal %idle
5.85 0.00 19.05 0.00 0.00 75.09
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util
sda 51.00 0.00 67.00 0.50 7.31 0.00 221.93 0.94 13.60 1.07 7.20
sdb 0.00 50.00 0.00 63.00 0.00 6.66 216.44 0.21 2.95 0.83 5.20
md0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
/proc/mdstat 输出:
root@portex:/var/log/fsck# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb[2] sda[1]
488386496 blocks [2/1] [_U]
[===========>.........] recovery = 55.8% (272962432/488386496) finish=409.8min speed=8758K/sec
unused devices: <none>
答案1
我遇到过类似的问题。我费了一番周折(与制造商交谈)才发现问题出在您使用的驱动器上 - Barracuda(消费级)驱动器 - 在某些主板(我的情况是 HP 1u 系统)中无法很好地与 RAID 配合使用。尽管我非常怀疑,但我还是用服务器级(Constellation)驱动器替换了我的 Barracuda 驱动器,这解决了问题。我确实注意到这只影响某些硬件 - 我有 Intel 1u 服务器,它们工作正常。
(我仍然不明白为什么软件突袭会以这种方式运行,它似乎并不直观 - 几乎就像硬件被故意设计成残缺的 - 但 Constellation 驱动器并没有那么贵!)