HP c-Class Performance Tuning manual Handling PCIe errors

Page 11

Send the bundle to support@fusionio.com, and request assistance in debugging a performance issue. [Reviewers: how do HP customers handle this?]

Below is an example of a bandwidth error reported by fio-pci-check, caused by an over-subscription condition. Any line indicated with an asterisk indicates a possible problem detected by the fio-pci-checkutility.

fio-pci-check

Root Bridge PCIe 3000 MB/sec

Bridge 00:02.00 (01-05)

*Needed 3000 MB/sec Avail 2000 MB/sec

Bridge 01:00.00 (02-04)

*Needed 3000 MB/sec Avail 2000 MB/sec

Bridge 02:00.00 (03-03)

Needed 1000 MB/sec Avail 1000 MB/sec

ioDrive 03:00.0 Firmware 14071

Handling PCIe errors

Issue

Data errors might be introduced when data is passed across the bus.

Solution

PCIe detects, and in many situations, corrects, data errors. These errors can also be detected by running the fio-pci-checkutility.

NOTE: The fio-pci-checkutility is not fully functional on all operating systems.

If such errors are detected on your system:

1.Reseat all risers and IO Accelerators in the system.

2.Run some significant data to and from the IO Accelerator in question and check for errors again.

3.If the errors continue, the most common culprit is a riser card. Install a different riser card.

4.If errors persist, install a different motherboard.

5.If errors persist, install a new IO Accelerator.

The IO Accelerator causes PCI errors to show up faster than other devices do. Because of the high performance, the IO Accelerator is demanding on the PCI Express bus, showing errors in the system that other devices might not be able to uncover.

If multiple cards are installed in the system, use the fio-statuswhich of the drives is failing. The fio-statusutility returns the fio-beaconutility turns on the beacon LED for identification.

and fio-beaconutilities to determine serial number for the device, and the

Debugging performance issues 11

Image 11
Contents HP IO Accelerator Performance Tuning Guide Page Contents Setting Windows driver affinity Introduction About the Performance and Tuning GuideVerifying Linux system performance System performanceWrite bandwidth test System performance Verifying Windows system performance with Iometer Oversubscribed bus Debugging performance issuesImproperly configured benchmark Handling PCIe errors PCIe link width improperly negotiated CPU thermal throttling or auto-idling Benchmarking through a filesystem Slow performance using RAID5 on LinuxUsing CP and other system utilities To avoid this issue. For more information, see the patch Multiple outstanding IOs General tuning techniquesUsing direct I/O, unbuffered, or zero copy $ dd if=/dev/zero of=/dev/fioX bs=10M oflag=direct Pre-conditioning$ echo 4096 /sys/block/fio name/queue/nrrequests Pre-allocating memoryPreallocatemb Increased steady-state write performance with fio-format Tuning techniques for writesStripewidth = dbd * stride Linux filesystem tuningExt2-3-4 tuning Stride = chunk size / filesystem block sizeOptions iomemory-vsl preallocatememory=1072,4997,6710,10345 Using the IO Accelerator as swap space$ tar xjvf fio-X.Y.Z.tar.bz2 $ cd fio-X.Y.Z Fio benchmarkCompiling the fio benchmark Page Fd = openfilename, Owronly Odirect Programming using direct I/OUsing direct I/O on Linux Fd = openfilename, OwronlyUsing direct I/O on Windows ++ code sample Programming using direct I/O Programming using direct I/O Windows driver affinity Setting Windows driver affinityCreate the SetWorkerAffinity2 tag of type Regdword Acronyms and abbreviations Index Index