Hide Forgot
Description of problem: iostat outputs with two digits of precision which is useful for current storage low-latency hardware. Note in the following the await_r time is 0.01ms. The PCP pmiostat output outputs 1 digit of precision. Needs a minimum of 2 digits of precision like iostat. Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util PR nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0 nvme0n1 0.00 0.00 16141.00 0.00 64564.00 0.00 8.00 0.28 0.02 0.02 0.00 0.02 28.00 1 nvme0n1 0.00 0.00 79626.00 0.00 318504.00 0.00 8.00 0.90 0.01 0.01 0.00 0.01 89.70 1 nvme0n1 0.00 0.00 77544.00 0.00 310176.00 0.00 8.00 0.89 0.01 0.01 0.00 0.01 88.50 1 nvme0n1 0.00 0.00 82527.00 0.00 330108.00 0.00 8.00 0.93 0.01 0.01 0.00 0.01 93.20 1 nvme0n1 0.00 0.00 80367.00 0.00 321468.00 0.00 8.00 0.89 0.01 0.01 0.00 0.01 89.50 1 nvme0n1 0.00 0.00 79825.00 0.00 319300.00 0.00 8.00 0.86 0.01 0.01 0.00 0.01 85.90 0 nvme0n1 0.00 0.00 78147.00 0.00 312588.00 0.00 8.00 0.90 0.01 0.01 0.00 0.01 89.80 1 nvme0n1 0.00 0.00 79992.00 0.00 319968.00 0.00 8.00 0.87 0.01 0.01 0.00 0.01 86.70 1 nvme0n1 0.00 0.00 79402.00 0.00 317608.00 0.00 8.00 0.91 0.01 0.01 0.00 0.01 90.50 1 nvme0n1 0.00 0.00 78224.00 0.00 312896.00 0.00 8.00 0.87 0.01 0.01 0.00 0.01 87.10 0 nvme0n1 0.00 0.00 79644.00 0.00 318576.00 0.00 8.00 0.88 0.01 0.01 0.00 0.01 87.80 1 nvme0n1 0.00 0.00 79324.00 0.00 317296.00 0.00 8.00 0.85 0.01 0.01 0.00 0.01 85.40 1 nvme0n1 0.00 0.00 79529.00 0.00 318116.00 0.00 8.00 0.84 0.01 0.01 0.00 0.01 83.90 1 nvme0n1 0.00 0.00 29708.00 0.00 118832.00 0.00 8.00 0.33 0.01 0.01 0.00 0.01 32.90 0 nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0 pmiostat # Device rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await %util sda 0.0 0.0 0.0 0.0 0.0 0.0 0.00 0.00 0.0 0.0 0.0 0.0 sdaa 0.0 0.0 0.0 0.0 0.0 0.0 0.00 0.00 0.0 0.0 0.0 0.0 Version-Release number of selected component (if applicable): latest shipped PCP in RHEL6. pcp-libs-3.10.3-3.el6.x86_64 pcp-conf-3.10.3-3.el6.x86_64 python-pcp-3.10.3-3.el6.x86_64 pcp-3.10.3-3.el6.x86_64 How reproducible: 100% Steps to Reproduce: 1. 2. 3. Actual results: low precision obscures real latency values Expected results: enough precision that latency value is not obscured. Additional info:
Hi Bud, how about we just add -f N flag, same as supported by pmval(1) to allow N digits of precision (default N=1)? This would keep the current default at 1 digit of precision (and so wouldn't upset any PCP QA tests), but allow more digits in the pmiostat client-side reporting when needed. The full precision is always available in the captured logs, so no collector/PMDA side changes are needed here. Alternatively we could just increase the precision for the await fields, but I think -f is more flexible. Thanks -- Mark
Mark, That works. Its similar to what collectl does... there is (I think) a -x flag for extended precision so already have to do something similar if the data collection is from that environment.
Created attachment 1134697 [details] testcases
This is fixed in upstream commit af4cbb06c117fe.
Verified manually with build pcp-3.10.9-9.el6.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2017-0735.html