Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

High cpu usage of dbuf_evict for small random reads #6952

Closed
woquflux opened this issue Dec 13, 2017 · 7 comments
Closed

High cpu usage of dbuf_evict for small random reads #6952

woquflux opened this issue Dec 13, 2017 · 7 comments
Labels
Status: Stale No recent activity for issue Type: Performance Performance improvement or performance problem

Comments

@woquflux
Copy link

woquflux commented Dec 13, 2017

System information

Type Version/Name
Distribution Name Redhat
Distribution Version 7.2
Linux Kernel 3.10.0-327.el7.x86_64
Architecture
ZFS Version 0.6.4.2
SPL Version 0.6.4.2

Describe the problem you're observing

Terrible Performance with SSD x 18 (Intel S3500)

Describe how to reproduce the problem

CPU usage of rngd is 100%

Include any warning/errors/backtraces from the system logs

image

image

@behlendorf
Copy link
Contributor

This was addressed in the zfs-0.7 series. Alternately if you must run zfs-0.6. you should be able to cherry pick these two patches openzfs/spl@0b43696 and openzfs/spl@0d26756.

@woquflux
Copy link
Author

woquflux commented Dec 14, 2017

There is another problem in the 0.7.3, dbuf_evict process CPU usage is 100%

image

90,000 IOPS(8K,random read) is maximum
qq20171214-170839 2x

@behlendorf
Copy link
Contributor

@woquflux that's definitely something we're going to want to look in to further optimizing. This particular small random read test case is pushing that dbuf cache eviction code to the limit on your system. Can you post the output of perf top -p <dbuf_evict pid> from you system when it's running this workload. That should let us isolate exactly which functions are consuming those cycles and why.

I've also changed the title of this issue to reflect the second issue you've mentioned rather than opening a new issue for it.

@behlendorf behlendorf changed the title High cpu usage of rngd limits performance High cpu usage of dbuf_evict for small random read workload Dec 14, 2017
@behlendorf behlendorf changed the title High cpu usage of dbuf_evict for small random read workload High cpu usage of dbuf_evict for small random reads Dec 14, 2017
@woquflux
Copy link
Author

woquflux commented Dec 15, 2017

qq20171215-121415

@behlendorf Thanks for your reply. I had enough devices for test if you want more information

volblocksize=4k, by the way.

@behlendorf behlendorf added the Type: Performance Performance improvement or performance problem label Dec 15, 2017
@behlendorf
Copy link
Contributor

@woquflux thanks for the profiling data.

@richardelling
Copy link
Contributor

While not a solution, we are interested in understanding whether and how we can use dbufstats to track dbuf-related pathologies. Could you add the output of cat /proc/spl/kstat/zfs/dbufstats before and after experiments?

@behlendorf behlendorf removed this from the 0.8.0 milestone Mar 15, 2019
@stale
Copy link

stale bot commented Aug 24, 2020

This issue has been automatically marked as "stale" because it has not had any activity for a while. It will be closed in 90 days if no further activity occurs. Thank you for your contributions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Stale No recent activity for issue Type: Performance Performance improvement or performance problem
Projects
None yet
Development

No branches or pull requests

3 participants