[Openstack] [swift] openstack swift PUT object question
Christian Schwede
christian.schwede at enovance.com
Fri Oct 10 15:01:17 UTC 2014
> On Fri, Oct 10, 2014 at 7:44 AM, dboyzhong <dboyzhong at 163.com
> <mailto:dboyzhong at 163.com>> wrote:
>
> Hi. when i put a object(1K) to swift cluster, the performance is so
> bad, QPS only 16. and i found the function: "_finalize_put" in file
> Diskfile.py cost too much time . mainly caused by the fsync() inside
> _finalize_put operation, the fsync() will cost 30ms when write 1KB
> data to disk . as a result the PUT performance is bad.
Using a single thread, multiple, threads, spinning disks, SSDs? This
highly depends on your configuration. And 30ms for a single fsync() is a
lot of time, is the disk used heavily? Or is this the actual time for
the whole HTTP request?
> how can tuning the performance ? and why call fsync() function?
The fsync() call ensures that all data is written to disk before the
clients gets a response, stating that everything is ok. Doing this (and
doing this on at least the quorum of the configured replicas) a client
can be sure that the data is actually stored multiple times on disk.
Otherwise there might be a failure before the data gets written to the
disk, and in a worst case scenario that data is lost.
Christian
More information about the Openstack
mailing list