Bug 196816 - poor disk IO performance on Digital Ocean cloud hosting
Summary: poor disk IO performance on Digital Ocean cloud hosting
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 10.1-RELEASE
Hardware: amd64 Any
: --- Affects Only Me
Assignee: freebsd-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-01-17 03:11 UTC by Steve Wills
Modified: 2015-01-19 21:35 UTC (History)
1 user (show)

See Also:


Attachments
First flame graph (89.99 KB, image/svg+xml)
2015-01-17 03:11 UTC, Steve Wills
no flags Details
second kernel flame graph (74.22 KB, image/svg+xml)
2015-01-17 03:11 UTC, Steve Wills
no flags Details
third flame graph (52.17 KB, image/svg+xml)
2015-01-17 03:11 UTC, Steve Wills
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Steve Wills freebsd_committer freebsd_triage 2015-01-17 03:11:04 UTC
Created attachment 151754 [details]
First flame graph

Don't know what causes it yet, but disk IO is very slow in Digital Ocean cloud hosting. Running bonnie++ on it takes so long I have yet to see it finish. I tried setting sysctl kern.timecounter.hardware=TSC-low as well as machdep.idle=hlt, but this didn't speed things up much. I got some CPU flame graphs which I will attach. The first is with default settings, the second is with the timecounter switched and the third is with that and machdep.idle switched. Any advice?
Comment 1 Steve Wills freebsd_committer freebsd_triage 2015-01-17 03:11:32 UTC
Created attachment 151755 [details]
second kernel flame graph
Comment 2 Steve Wills freebsd_committer freebsd_triage 2015-01-17 03:11:55 UTC
Created attachment 151756 [details]
third flame graph
Comment 3 Steve Wills freebsd_committer freebsd_triage 2015-01-17 03:35:42 UTC
Here's the bonnie++ output:

Using uid:1001, gid:1001.
Writing a byte at a time...done
Writing intelligently...^CSegmentation fault
root@d2015011693:~ # bonnie++ -d /tmp -r 2048 -u freebsd
Using uid:1001, gid:1001.
Writing a byte at a time...done
Writing intelligently...done
Rewriting...done
Reading a byte at a time...done
Reading intelligently...done
start 'em...done...done...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version  1.97       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
d2015011693      4G     1   3 10087   4 12760   5  1004  99 1124540  84  9978 123
Latency             11598ms   35628us   21812us   13366us    9685us    8505us
Version  1.97       ------Sequential Create------ --------Random Create--------
d2015011693         -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16  1627   6 +++++ +++  3576   8  1679   5 +++++ +++  3559   8
Latency             19025us    2489us   18229us   18512us     170us   18347us
1.97,1.97,d2015011693,1,1421463296,4G,,1,3,10087,4,12760,5,1004,99,1124540,84,9978,123,16,,,,,1627,6,+++++,+++,3576,8,1679,5,+++++,+++,3559,8,11598ms,35628us,21812us,13366us,9685us,8505us,19025us,2489us,18229us,18512us,170us,18347us
Comment 4 Steve Wills freebsd_committer freebsd_triage 2015-01-17 04:43:37 UTC
The filesystem defaults to sync mounts, disabling that fixes it, sorry for the noise.