<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I second this.<div><br></div><div>We have millions of objects on several accounts. Eg. one account has about 7 million images. These are split into containers according to their filename:</div><div><br></div><div>/images_000/something.jpg</div><div>...</div><div>/images_fff/something_else.jpg</div><div><br></div><div>Also, I recommend looking at tuning the configs. Some examples:</div><div><br></div><div><br></div><div>object-server.conf:</div><div><br></div><div><div>[object-replicator]</div><div>concurrency = 4</div><div>run_pause = 60</div></div><div><br></div><div><div>[object-updater]</div><div>concurrency = 4</div></div><div><br></div><div><div>[object-auditor]</div><div>files_per_second = 5</div><div>bytes_per_second = 2500000</div><div>concurrency = 25</div></div><div><br></div><div><br></div><div>container-server.conf:</div><div><br></div><div><div>[container-replicator]</div><div>concurrency = 8</div><div>run_pause = 60</div></div><div><br></div><div><div>[container-updater]</div><div>concurrency = 4</div></div><div><br></div><div><div>[container-sync]</div><div>interval = 300</div><div>container_time = 60</div></div><div><br></div><div><br></div><div>account-server.conf:</div><div><br></div><div><div>[account-replicator]</div><div>concurrency = 4</div><div>run_pause = 45</div></div><div><br></div><div><div>[account-reaper]</div><div>concurrency = 25</div></div><div><br></div><div><br></div><div><br><div apple-content-edited="true">
<span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Mvh / Best regards</div><div>Morten Møller Riis</div><div>Gigahost ApS</div><div><a href="mailto:mmr@gigahost.dk">mmr@gigahost.dk</a></div><div><br></div></div></span><br class="Apple-interchange-newline"></span><br class="Apple-interchange-newline">
</div>
<br><div><div>On Aug 6, 2013, at 12:15 AM, John Dickinson <<a href="mailto:me@not.mn">me@not.mn</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">There are a few things you can look at.<br><br>First, the slowdowns you are seeing may be because of the increased numbers of files on disk. This causes the background processes to do more work, which can cause some issues for the server processes.<br><br>Second (and perhaps more likely), how is your data arranged? Are you putting every object into the same container? Swift is optimized for access across the entire namespace, so spreading your data across many containers can help improve write performance. Since you are running with account and proxy servers on the same spinning media as the object servers, as you get your cluster more full, write performance will degrade significantly with many objects in a single container. With your setup, you should probably have a max of about a million objects in a single container. If you separate your account and container servers to use SSDs (and perhaps separate machines), you could do 100x this number effectively. Note that this issue doesn't affect read performance. Object eead performance should stay high no matter the cardinality of objects in a single container.<br><br><br>--John<br><br><br><br>On Aug 5, 2013, at 4:09 AM, Jonathan Lu <<a href="mailto:jojokururu@gmail.com">jojokururu@gmail.com</a>> wrote:<br><br><blockquote type="cite">Hi,<br> I suffer the same issue that our swift system gets slower and slower. I tried almost all the guide in the document but it does little help.<br><br> Maybe swift is not suitable to the circumstance of putting and getting many little files. Maybe is it more suitable to the large object such as the image of OS? I am not quite sure.<br><br>Best Regards<br>Jonathan Lu<br><br>On 2013/8/5 18:35, Hua ZZ Zhang wrote:<br><blockquote type="cite">Here's the deployment guide which can give you options for tuning container replicator and auditor, such as concurrency.<br><a href="http://docs.openstack.org/developer/swift/deployment_guide.html">http://docs.openstack.org/developer/swift/deployment_guide.html</a> <br>hope this can help you.<br><br>Best Regards, <br><br><br>Edward Zhang(张华)<br>Advisory Software Engineer<br>Software Standards & Open Source Software<br>Emerging Technology Institute(ETI)<br>IBM China Software Development Lab<br>e-mail: <a href="mailto:zhuadl@cn.ibm.com">zhuadl@cn.ibm.com</a><br><Mail Attachment.gif><br><Mail Attachment.gif><br><Mail Attachment.gif><br><br><Mail Attachment.gif><br><Mail Attachment.gif>Klaus Schürmann ---08/05/2013 06:13:43 PM---Klaus Schürmann <<a href="mailto:klaus.schuermann@mediabeam.com">klaus.schuermann@mediabeam.com</a>><br><br>Klaus Schürmann <<a href="mailto:klaus.schuermann@mediabeam.com">klaus.schuermann@mediabeam.com</a>> <br>08/05/2013 06:14 PM<br><br><Mail Attachment.gif><br>To<br><Mail Attachment.gif><br>Hua ZZ Zhang/China/IBM@IBMCN,<br><Mail Attachment.gif><br>cc<br><Mail Attachment.gif><br>"<a href="mailto:openstack@lists.openstack.org">openstack@lists.openstack.org</a>" <<a href="mailto:openstack@lists.openstack.org">openstack@lists.openstack.org</a>><br><Mail Attachment.gif><br>Subject<br><Mail Attachment.gif><br>AW: [Openstack] [SWIFT] PUTs and GETs getting slower<br><Mail Attachment.gif><span class="Apple-tab-span" style="white-space:pre"> </span><Mail Attachment.gif><br>Here is my container-server.conf:<br><br>[DEFAULT]<br>log_name = container-server<br>log_facility = LOG_LOCAL6<br>log_level = INFO<br>log_address = /dev/log<br>bind_ip = 10.12.1.1<br>workers = 8<br>log_statsd_host = 10.11.2.1<br>log_statsd_port = 8125<br>log_statsd_default_sample_rate = 0.25<br>log_statsd_metric_prefix = Storage01<br><br>[pipeline:main]<br>pipeline = recon container-server<br><br>[filter:recon]<br>use = egg:swift#recon<br>recon_cache_path = /var/cache/swift<br><br>[app:container-server]<br>use = egg:swift#container<br><br>[container-replicator]<br>concurrency = 2<br><br>[container-updater]<br>concurrency = 1<br><br>[container-auditor]<br><br>[container-sync]<br><br><br>--------<br>For the second question, Swift doesn't use updatedb.mlocate in my mind. it should be safe to disable it.<br>Based on the TOP output, it seems that the CPU workload of container replicator and auditor are too high.<br>Perhaps you need to tune the config file to decrease their workload. paste your config file of<br>container servers.<br><br>Best Regards, <br>Edward Zhang(张华)<br>Advisory Software Engineer<br>Software Standards & Open Source Software<br>Emerging Technology Institute(ETI)<br>IBM China Software Development Lab<br>e-mail: <a href="mailto:zhuadl@cn.ibm.com">zhuadl@cn.ibm.com</a><br><Mail Attachment.gif><br><Mail Attachment.gif><br><Mail Attachment.gif><br><Mail Attachment.gif><span class="Apple-tab-span" style="white-space:pre"> </span><Mail Attachment.gif><br><Mail Attachment.gif>Klaus Schürmann ---08/05/2013 05:43:08 PM---Klaus Schürmann <<a href="mailto:klaus.schuermann@mediabeam.com">klaus.schuermann@mediabeam.com</a>><br>Klaus Schürmann <<a href="mailto:klaus.schuermann@mediabeam.com">klaus.schuermann@mediabeam.com</a>> <br>08/05/2013 05:26 PM<br><br><Mail Attachment.gif> <br>To<br><Mail Attachment.gif><br>"<a href="mailto:openstack@lists.openstack.org">openstack@lists.openstack.org</a>" <<a href="mailto:openstack@lists.openstack.org">openstack@lists.openstack.org</a>>,<br><Mail Attachment.gif> <br>cc<br><Mail Attachment.gif><br><Mail Attachment.gif> <br>Subject<br><Mail Attachment.gif><br>[Openstack] [SWIFT] PUTs and GETs getting slower<br><br><br><Mail Attachment.gif><span class="Apple-tab-span" style="white-space:pre"> </span><Mail Attachment.gif><br>Hi,<br><br>my Swift cluster is working for three weeks now as a mail storage and the performance is getting slower and slower.<br><br>This is my hardware configuration:<br><br>- 1 hardware-loadbalancer<br>- 2 proxy-server DELL R420 16 GB RAM 2 Quadcore CPU<br>- 5 proxy-server DELL R720xd 16 GB RAM 2 Quadcore CPU with 3x 2TB HDD SATA 6GB/s<br><br>The cluster contains:<br><br>279.000 containers<br>8.170.000 objects = 984 GByte<br><br>I have about 3.000.000 GETs per day and 1.500.000 PUTs.<br><br>The load is raising up to 12 now:<br><br>top - 11:06:39 up 114 days, 23:10, 1 user, load average: 10.88, 11.26, 11.22<br>Tasks: 175 total, 3 running, 172 sleeping, 0 stopped, 0 zombie<br>%Cpu(s): 15.6 us, 9.8 sy, 0.0 ni, 69.3 id, 4.5 wa, 0.0 hi, 0.8 si, 0.0 st<br>KiB Mem: 16386408 total, 14829360 used, 1557048 free, 30796 buffers<br>KiB Swap: 17575932 total, 132604 used, 17443328 free, 5572360 cached<br><br>PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND<br>25880 swift 20 0 81400 15m 3352 D 34.5 0.1 2838:36 /usr/bin/python /usr/bin/swift-container-replicator /etc/swift/container-server.conf<br>24282 swift 20 0 81084 14m 3244 S 19.2 0.1 3835:23 /usr/bin/python /usr/bin/swift-container-auditor /etc/swift/container-server.conf<br>29816 swift 20 0 1523m 27m 2032 D 9.6 0.2 1132:58 /usr/bin/python /usr/bin/swift-object-server /etc/swift/object-server.conf<br>29812 swift 20 0 1523m 27m 2032 R 7.0 0.2 1169:50 /usr/bin/python /usr/bin/swift-object-server /etc/swift/object-server.conf<br>29815 swift 20 0 1523m 27m 2032 D 6.6 0.2 1132:45 /usr/bin/python /usr/bin/swift-object-server /etc/swift/object-server.conf<br>29809 swift 20 0 1523m 26m 2032 D 5.6 0.2 1163:53 /usr/bin/python /usr/bin/swift-object-server /etc/swift/object-server.conf<br>30684 swift 20 0 84496 16m 2468 D 5.6 0.1 1959:57 /usr/bin/python /usr/bin/swift-container-server /etc/swift/container-server.conf<br>13853 snmp 20 0 51844 3356 1800 S 5.3 0.0 32:14.90 /usr/sbin/snmpd -Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid<br>29810 swift 20 0 1523m 27m 2032 D 5.3 0.2 1132:09 /usr/bin/python /usr/bin/swift-object-server /etc/swift/object-server.conf<br>29813 swift 20 0 1525m 27m 2032 D 5.3 0.2 1177:23 /usr/bin/python /usr/bin/swift-object-server /etc/swift/object-server.conf<br>29811 swift 20 0 1524m 28m 2032 D 5.0 0.2 1169:37 /usr/bin/python /usr/bin/swift-object-server /etc/swift/object-server.conf<br>30677 swift 20 0 84932 17m 2468 D 5.0 0.1 1992:49 /usr/bin/python /usr/bin/swift-container-server /etc/swift/container-server.conf<br>29814 swift 20 0 1524m 27m 2032 D 4.6 0.2 1181:11 /usr/bin/python /usr/bin/swift-object-server /etc/swift/object-server.conf<br>30681 swift 20 0 84980 17m 2468 S 4.3 0.1 1999:12 /usr/bin/python /usr/bin/swift-container-server /etc/swift/container-server.conf<br>30678 swift 20 0 84684 17m 2468 D 4.0 0.1 1973:14 /usr/bin/python /usr/bin/swift-container-server /etc/swift/container-server.conf<br>30682 swift 20 0 84224 16m 2468 S 4.0 0.1 1960:55 /usr/bin/python /usr/bin/swift-container-server /etc/swift/container-server.conf<br>30685 swift 20 0 84356 16m 2468 D 3.6 0.1 1979:40 /usr/bin/python /usr/bin/swift-container-server /etc/swift/container-server.conf<br>7086 root 20 0 0 0 0 S 3.3 0.0 0:00.78 [kworker/6:1]<br>30683 swift 20 0 84160 16m 2468 S 3.3 0.1 1981:38 /usr/bin/python /usr/bin/swift-container-server /etc/swift/container-server.conf<br>30679 swift 20 0 83852 16m 2468 S 3.0 0.1 1965:53 /usr/bin/python /usr/bin/swift-container-server /etc/swift/container-server.conf<br>5935 root 20 0 0 0 0 S 2.7 0.0 0:16.38 [kworker/2:1]<br>6832 root 20 0 0 0 0 S 2.7 0.0 0:02.78 [kworker/4:0]<br>7153 swift 20 0 80300 9.8m 2040 D 2.7 0.1 0:00.08 /usr/bin/python /usr/bin/swift-container-updater /etc/swift/container-server.conf<br>1840 root 20 0 0 0 0 S 2.3 0.0 0:59.87 [kworker/0:1]<br>9630 swift 20 0 75796 6272 1708 D 2.0 0.0 1889:16 /usr/bin/python /usr/bin/swift-object-auditor /etc/swift/object-server.conf<br>9656 swift 20 0 87424 17m 2304 S 2.0 0.1 748:29.97 /usr/bin/python /usr/bin/swift-account-server /etc/swift/account-server.conf<br>9659 swift 20 0 86908 17m 2304 S 2.0 0.1 803:09.64 /usr/bin/python /usr/bin/swift-account-server /etc/swift/account-server.conf<br>9653 swift 20 0 85816 16m 2304 S 1.7 0.1 723:34.42 /usr/bin/python /usr/bin/swift-account-server /etc/swift/account-server.conf<br>9654 swift 20 0 87500 17m 2304 R 1.7 0.1 769:23.97 /usr/bin/python /usr/bin/swift-account-server /etc/swift/account-server.conf<br>9655 swift 20 0 85956 16m 2408 S 1.7 0.1 783:28.18 /usr/bin/python /usr/bin/swift-account-server /etc/swift/account-server.conf<br>9658 swift 20 0 87808 18m 2304 S 1.7 0.1 767:31.82 /usr/bin/python /usr/bin/swift-account-server /etc/swift/account-server.conf<br>32616 root 20 0 0 0 0 S 1.7 0.0 0:18.13 [kworker/3:0]<br>1826 syslog 20 0 243m 5124 856 S 1.3 0.0 329:10.12 rsyslogd -c5<br>6944 root 20 0 0 0 0 S 1.3 0.0 0:01.08 [kworker/7:2]<br>9652 swift 20 0 86896 17m 2412 S 1.3 0.1 663:32.21 /usr/bin/python /usr/bin/swift-account-server /etc/swift/account-server.conf<br>9657 swift 20 0 86016 16m 2408 S 1.3 0.1 706:22.08 /usr/bin/python /usr/bin/swift-account-server /etc/swift/account-server.conf<br> 51 root 20 0 0 0 0 S 1.0 0.0 134:26.37 [kswapd0]<br>4548 root 20 0 0 0 0 S 1.0 0.0 0:11.69 [kworker/1:2]<br>5362 root 20 0 0 0 0 S 1.0 0.0 0:10.95 [kworker/5:3]<br> 3 root 20 0 0 0 0 S 0.7 0.0 604:49.60 [ksoftirqd/0]<br> 52 root 20 0 0 0 0 S 0.7 0.0 68:32.58 [kswapd1]<br>7412 swift 20 0 80300 9704 2780 S 0.7 0.1 566:00.53 /usr/bin/python /usr/bin/swift-container-updater /etc/swift/container-server.conf<br>9580 swift 20 0 75632 7140 2728 D 0.7 0.0 2218:06 /usr/bin/python /usr/bin/swift-object-auditor /etc/swift/object-server.conf<br>22178 root 20 0 7404 992 700 D 0.7 0.0 20:28.93 /usr/bin/updatedb.mlocate<br><br>Is this a memory problem or a harddisk problem?<br><br>And second question: On the server the mlocate database is rising. Can I disable the updatedb.mlocate process and empty the database?<br><br>Thanks<br>Klaus<br><br><br><br>_______________________________________________<br>Mailing list: <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a><br>Post to : <a href="mailto:openstack@lists.openstack.org">openstack@lists.openstack.org</a><br>Unsubscribe : <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a><br><br><br><br>_______________________________________________<br>Mailing list: <br><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a><br><br>Post to : <br>openstack@lists.openstack.org<br><br>Unsubscribe : <br>http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack<br></blockquote><br>_______________________________________________<br>Mailing list: <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a><br>Post to : <a href="mailto:openstack@lists.openstack.org">openstack@lists.openstack.org</a><br>Unsubscribe : <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a><br></blockquote><br>_______________________________________________<br>Mailing list: <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a><br>Post to : <a href="mailto:openstack@lists.openstack.org">openstack@lists.openstack.org</a><br>Unsubscribe : <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a><br></blockquote></div><br></div></body></html>