New issue
Advanced search Search tips

Issue 769150 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

nvme storage performance

Project Member Reported by asavery@chromium.org, Sep 27 2017

Issue description

Nvme performance should be better than emmc, but nothing has shown very significant improvements.
Arc++ apps haven't shown significant differences in loading times between emmc and nvme.
I measured the time it takes to compile the kernel on eve, using both crouton and a container. Nvme is between 3 and 6% faster than emmc, but that is not as significant as we would expect. Here are sample times:
Nvme container:
real	6m39.067s
user	23m55.171s
sys	1m59.797s

Nvme crouton:
real	6m46.810s
user	23m47.136s
sys	1m43.087s

emmc container:
real	7m0.848s
user	25m15.338s
sys	2m5.452s

emmc crouton:
real 	6m41.608s
user	23m40.113s
sys	1m46.217s

I used blktrace and btt to produce graphs of the io behavior while compiling the kernel, which I have attached. The graphs show a more significant difference in latencies, emmc having 5 times larger latencies, but these differences don't seem to be reflected in the overall times.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
 
aqd.png
36.6 KB View Download
d2c.png
64.6 KB View Download
q2c.png
62.7 KB View Download
q2d.png
48.4 KB View Download
eve_emmc_.out.avg
3.4 KB Download
eve_nvme_.out.avg
3.2 KB Download
Looking at iostat and top, it does seem likely that, at least in the case of compiling the kernel, it is cpu-bound. Nvme does seem to have much better throughput, with 823 MB/s write and 1.2 GB/s read compared to 136 MB/s write and 273 MB/s read for emmc.
I have run the cheets_CTS_N.x86.CtsFileSystemTestCases on nvme and emmc, and we do see an improvement with nvme. The test took 2h 5m 27s on nvme compared to 3h 35m 48s on emmc, about 42% faster. Looking at the iostat output (attached) we can see that this test maintains high utilization of the storage device with lower cpu utilization, which is different from the other tests I have tried. This shows that we do see the benefits of nvme when the storage device is heavily used.
eve_iostat_emmc_cts_auto
4.5 MB View Download
eve_iostat_nvme_cts_auto
2.1 MB View Download
To summarize the tests I have tried (with associated iostat outputs attached):

I started by looking at loading time for android apps, specifically looking at cheets_CandyCrushTest. While we do see utilization of the storage device here, it is not very high utilization and only over a short period of time, so we don’t seem to get the benefit of the nvme device and the loading times are not significantly different. I tried some other arc++ tests as well as having tabs open while running the cheets_CandyCrushTest, and still did not see very significant differences like we would hope (I have attached pdfs of my spreadsheets with some of the times. Note that some of these numbers come from tests run on a fizz, meaning they are comparing nvme and sata devices rather than emmc).

I ran fio tests with the 4k_read script on a fizz and graphed the iops as part of this bug: crbug.com/731497 and comparing nvme and sata devices, we do see more iops with nvme. (I have attached two graphs to show this).

I then tried to look at the time it takes to compile the kernel, both in crouton and inside a container. As stated above, we don’t see a significant improvement with the nvme device like we would expect, but looking at the iostat we can see that the storage device is not heavily utilized, and we seem to be cpu bound.

I ran cts tests in android studio, running in crouton, but none of the tests showed sustained utilization of the storage devices, the highest being around 11% and never for longer than 10 seconds at a time, so I wasn’t able to gain much from this.

As I said in the comment above, running cheets_CTS_N.x86.CtsFileSystemTestCases did show an improvement with nvme. We see sustained storage utilization of at or close to 100% with %iowait between 20 and 50. The test takes around 2 hours with nvme compared to around 3.5 hours on emmc. This shows that with stress on the storage device we are seeing the benefits of nvme. It seems that most of these use cases just don’t utilize the storage device heavily enough for us to see the effect of the nvme, or are being constrained elsewhere.

eve_emmc_cc_iostat
21.7 KB View Download
eve_emmc_fio_iostat
328 KB View Download
eve_emmc_vm_cmp_iostat
284 KB View Download
eve_nvme_cc_iostat
18.3 KB View Download
eve_nvme_crouton_cmp
147 KB View Download
eve_nvme_fio_iostat
256 KB View Download
eve_nvme_vm_cmp_iostat
193 KB View Download
fizz_nvme_iops_graph_2.html
1.3 KB View Download
fizz_sata_iops_graph_4.html
1.3 KB View Download
nvme perf- eve.pdf
31.2 KB Download
nvme v sata arc perf.pdf
169 KB Download
As an additional use case for comparing nvme and emmc performance, I have measured the compile time for vlc for android in crouton with android studio, following these instructions: https://wiki.videolan.org/AndroidCompile/#Troubleshooting_2 and measuring the time for ./compile to complete. Overall, the compile times were not significantly different. Looking at iostat while compiling, I saw heavier utilization of the storage device with emmc, which briefly went as high as about 80% and occasionally hit around 50%, but mostly stayed somewhere between 10 and 30%. The highest that the utilization of the nvme reached was between 10 and 20%, spending most of the time below 2%. We don't see sustained high utilization of the storage device in either case, but we do see large periods of time with 95-99% cpu utilization, which suggests that we are cpu bound.
Considering the low storage utilization, I tried to increase the storage pressure by compiling the app while simultaneously transferring a large file (25G). With this concurrent scp, the emmc utilization hits 100%, but the nvme utilization doesn't get higher than about 35%. Despite the heavy utilization of the emmc, we do not see significantly higher compile times. Some of the times for nvme are lower with this setup, but considering the variation that we see with the compile times in general, I don't think that this is significant.
I also measured the build time in android studio, cleaning and running the project, but I did not see an improvement with nvme here either.

I am attaching a spreadsheet with the compile times I measured.
nvme_v_emmc_vlc_compile.pdf
31.9 KB Download
Components: Platform>Apps>ARC
Is there anything actionable here for the ARC++ team? This seems really more like a platform benchmarking issue, that may or may not have anything we can do?
Components: -Platform>Apps>ARC OS>Kernel>IntStorage
Owner: asavery@chromium.org
chatted with Alexis offline - she'll own this for now

Also moved out of ARC++ component and into the best related one I could find -- please feel free to reroute if I'm mistaken. Thanks!
Status: Assigned (was: Untriaged)
This bug has an owner, thus, it's been triaged. Changing status to "assigned".
Project Member

Comment 9 by bugdroid1@chromium.org, Oct 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/959cc6d0456f3051050504add70af385b487f2f8

commit 959cc6d0456f3051050504add70af385b487f2f8
Author: Alexis Savery <asavery@chromium.org>
Date: Wed Oct 03 20:59:24 2018

fio_util: Fix clat ns percentile units

Newer fio uses clat_ns_percentile instead of clat_percentile.
The units need to be changed to match.

BUG=chromium:769150
TEST=Ran hardware_StorageFio, checked results.json

Change-Id: Ifc671c2af716ca2330ed306029b48f9f7332fdfe
Reviewed-on: https://chromium-review.googlesource.com/1173476
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Alexis Savery <asavery@chromium.org>
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>

[modify] https://crrev.com/959cc6d0456f3051050504add70af385b487f2f8/client/bin/fio_util.py

Sign in to add a comment