<div dir="ltr">Chris,<br>&nbsp;Thanks for benchmark numbers. I will check this. Recently I too observed this type of behavior. Will get back with some inputs and a fix probably.<br><br>Regards,<br>Amar<br><br><div class="gmail_quote">
2008/8/7 Keith Freedman <span dir="ltr">&lt;<a href="mailto:freedman@freeformit.com">freedman@freeformit.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">At 08:20 AM 8/7/2008, Chris Davies wrote:<br>
&gt;I&#39;m not convinced that this is a network or hardware problem.<br>
<br>
</div>it doesn&#39;t sound like it to me either. &nbsp;what&#39;s the server stats while<br>
you&#39;re untarring?<br>
<br>
Hopefully one of thegluster devs will step in with some thoughts.<br>
<div><div></div><div class="Wj3C7c"><br>
<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; Hope that wasn&#39;t confusing.<br>
&gt; &gt;<br>
&gt; &gt; At 10:05 PM 8/6/2008, Chris Davies wrote:<br>
&gt; &gt;&gt; A continuation:<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; I used XFS &amp; MD raid 1 on the partitions for the initial tests.<br>
&gt; &gt;&gt; I tested reiser3 and reiser4 with no significant difference<br>
&gt; &gt;&gt; I reraided to MD Raid 0 with XFS and received some improvement<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; I NFS mounted the partition and received bonnie++ numbers similar to<br>
&gt; &gt;&gt; the best clientside AFR numbers I have been able to get, but,<br>
&gt; &gt;&gt; unpacking the kernel using nfsv4/udp took 1 minute 47 seconds<br>
&gt; &gt;&gt; compared<br>
&gt; &gt;&gt; with 12 seconds for the bare drive, 41 seconds for serverside AFR and<br>
&gt; &gt;&gt; an average of 17 minutes for clientside AFR.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; If I turn off AFR, whether I mount the remote machine over the net or<br>
&gt; &gt;&gt; use the local server&#39;s brick, tar xjf of a kernel takes roughly 29<br>
&gt; &gt;&gt; seconds.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Large files replicate almost at wire speed. &nbsp;rsync/cp -Rp of a large<br>
&gt; &gt;&gt; directory takes considerable time.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Both QA releases I&#39;ve attempted of 1.4.0 have broken within minutes<br>
&gt; &gt;&gt; using my configurations. &nbsp;1.4.0qa32 and 1.4.0qa33. &nbsp;I&#39;ll turn debug<br>
&gt; &gt;&gt; logs on and post summaries of those.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; On Aug 6, 2008, at 2:48 PM, Chris Davies wrote:<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; &gt; OS: Debian Linux/4.1, 64bit build<br>
&gt; &gt;&gt; &gt; Hardware: quad core xeon x3220, 8gb RAM, dual 7200RPM 1000gb WD<br>
&gt; &gt;&gt; Hard<br>
&gt; &gt;&gt; &gt; Drives, 750gb raid 1 partition set as /gfsvol to be exported, dual<br>
&gt; &gt;&gt; &gt; gigE, juniper ex3200 switch<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; Fuse libraries: fuse-2.7.3glfs10<br>
&gt; &gt;&gt; &gt; Gluster: glusterfs-1.3.10<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; Running bonnie++ on both machines results in almost identical<br>
&gt; &gt;&gt; numbers,<br>
&gt; &gt;&gt; &gt; eth1 is reserved wholly for server to server communications. &nbsp;Right<br>
&gt; &gt;&gt; &gt; now, the only load on these machines comes from my testbed.<br>
&gt; &gt;&gt; There are<br>
&gt; &gt;&gt; &gt; four tests that give a reasonable indicator of performance.<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; * loading a wordpress blog and looking at the line:<br>
&gt; &gt;&gt; &gt; &lt;!-- 24 queries. 0.634 seconds. --&gt;<br>
&gt; &gt;&gt; &gt; * dd if=/dev/zero of=/gfs/test/out bs=1M count=512<br>
&gt; &gt;&gt; &gt; * time tar xjf /gfs/test/linux-2.6.26.1.tar.bz2<br>
&gt; &gt;&gt; &gt; * /usr/sbin/bonnie++ /gfs/test/<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; On the wordpress test, .3 seconds is typical. &nbsp;On various gluster<br>
&gt; &gt;&gt; &gt; configurations I&#39;ve received between .411 seconds (server side afr<br>
&gt; &gt;&gt; &gt; config below) and 1.2 seconds with some of the example<br>
&gt; &gt;&gt; &gt; configurations. &nbsp;Currently, my clientside AFR config comes in at .<br>
&gt; &gt;&gt; 5xx<br>
&gt; &gt;&gt; &gt; seconds rather consistently.<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; The second test on the clientside AFR results in 536870912 bytes<br>
&gt; &gt;&gt; (537<br>
&gt; &gt;&gt; &gt; MB) copied, 4.65395 s, 115 MB/s<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; The third test is unpacking a kernel which has ranged from 28<br>
&gt; &gt;&gt; seconds<br>
&gt; &gt;&gt; &gt; using the Serverside AFR to 6+ minutes on some configurations.<br>
&gt; &gt;&gt; &gt; Currently the clientside AFR config comes in at about 17 minutes.<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; The fourth test is a run of bonnie++ which varies from 36 minutes<br>
&gt; &gt;&gt; on<br>
&gt; &gt;&gt; &gt; the serverside AFR to the 80 minute run on the clientside AFR<br>
&gt; &gt;&gt; config.<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; Current test environment is using both servers as clients &amp;<br>
&gt; &gt;&gt; servers --<br>
&gt; &gt;&gt; &gt; if I can get reasonable performance, the existing machines will<br>
&gt; &gt;&gt; become<br>
&gt; &gt;&gt; &gt; clients and the servers will be split to their own platform, so, I<br>
&gt; &gt;&gt; &gt; want to make sure I am using tcp for connections to give as close<br>
&gt; &gt;&gt; to a<br>
&gt; &gt;&gt; &gt; real world deployment as possible. &nbsp;This means I cannot run a<br>
&gt; &gt;&gt; client-<br>
&gt; &gt;&gt; &gt; only config.<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; Baseline Wordpress returns .311-.399 seconds<br>
&gt; &gt;&gt; &gt; Baseline dd 536870912 bytes (537 MB) copied, 0.489522 s, 1.1 GB/s<br>
&gt; &gt;&gt; &gt; Baseline tar xjf of the kernel, real &nbsp;0m12.164s<br>
&gt; &gt;&gt; &gt; Baseline Config bonnie++ run on the raid 1 partition: (echo data |<br>
&gt; &gt;&gt; &gt; bon_csv2txt for the text reporting)<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; c1ws1,16G,<br>
&gt; &gt;&gt; &gt; 66470,97,93198,16,42430,6,60253,86,97153,7,381.3,0,16,7534,37,++++<br>
&gt; &gt;&gt; +,++<br>
&gt; &gt;&gt; &gt; +,5957,23,7320,34,+++++,+++,4667,21<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; So far, the best performance I could manage was Server Side AFR<br>
&gt; &gt;&gt; with<br>
&gt; &gt;&gt; &gt; writebehind/readahead on the server, with aggregate-size set to<br>
&gt; &gt;&gt; 0mb,<br>
&gt; &gt;&gt; &gt; and the client side running writebehind/readahead. &nbsp;That resulted<br>
&gt; &gt;&gt; in:<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; c1ws2,16G,<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt;<br>
&gt; 37636,50,76855,3,17429,2,60376,76,87653,3,158.6,0,16,1741,3,9683,6,2591,3,2030,3,9790,5,2369,3<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; It was suggested in IRC that clientside AFR would be faster and<br>
&gt; &gt;&gt; more<br>
&gt; &gt;&gt; &gt; reliable, however, I&#39;ve ended up with the following as the best<br>
&gt; &gt;&gt; &gt; results from multiple attempts:<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; c1ws1,16G,<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt;<br>
&gt; 46041,58,76811,2,4603,0,59140,76,86103,3,132.4,0,16,1069,2,4795,2,1308,2,1045,2,5209,2,1246,2<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; The bonnie++ run from the serverside AFR that resulted in the best<br>
&gt; &gt;&gt; &gt; results I&#39;ve received to date took 34 minutes. &nbsp;The latest<br>
&gt; &gt;&gt; clientside<br>
&gt; &gt;&gt; &gt; AFR bonnie run took 80 minutes. &nbsp;Based on the website, I would<br>
&gt; &gt;&gt; expect<br>
&gt; &gt;&gt; &gt; to see better performance than drbd/GFS, but, so far that hasn&#39;t<br>
&gt; &gt;&gt; been<br>
&gt; &gt;&gt; &gt; the case.<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; Its been suggested that I use unify-rr-afr. &nbsp;In my current setup,<br>
&gt; &gt;&gt; it<br>
&gt; &gt;&gt; &gt; seems that to do that, I would need to break my raid set which is<br>
&gt; &gt;&gt; my<br>
&gt; &gt;&gt; &gt; next step in debugging this. &nbsp;Rather than use Raid 1 on the<br>
&gt; &gt;&gt; server, I<br>
&gt; &gt;&gt; &gt; would have 2 bricks on each server which would allow the use of<br>
&gt; &gt;&gt; unify<br>
&gt; &gt;&gt; &gt; and the rr scheduler.<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; glusterfs-1.4.0qa32 results in<br>
&gt; &gt;&gt; &gt; [Wed Aug 06 02:01:44 2008] [notice] child pid 14025 exit signal Bus<br>
&gt; &gt;&gt; &gt; error (7)<br>
&gt; &gt;&gt; &gt; [Wed Aug 06 02:01:44 2008] [notice] child pid 14037 exit signal Bus<br>
&gt; &gt;&gt; &gt; error (7)<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; when apache (not mod_gluster) tries to serve files off the<br>
&gt; &gt;&gt; glusterfs<br>
&gt; &gt;&gt; &gt; partition.<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; The main issue I&#39;m having right now is file creation speed. &nbsp;I<br>
&gt; &gt;&gt; realize<br>
&gt; &gt;&gt; &gt; that to create a file I need to do two network ops for each file<br>
&gt; &gt;&gt; &gt; created, but, it seems that something is horribly wrong in my<br>
&gt; &gt;&gt; &gt; configuration from the results in untarring the kernel.<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; I&#39;ve tried moving the performance translators around, but, some<br>
&gt; &gt;&gt; don&#39;t<br>
&gt; &gt;&gt; &gt; seem to make much difference on the server side, and the ones that<br>
&gt; &gt;&gt; &gt; appear to make some difference client side, don&#39;t seem to help the<br>
&gt; &gt;&gt; &gt; file creation issue.<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; On a side note, <a href="http://zresearch.com" target="_blank">zresearch.com</a>, I emailed through your contact<br>
&gt; &gt;&gt; form and<br>
&gt; &gt;&gt; &gt; haven&#39;t heard back -- please provide a quote for generating the<br>
&gt; &gt;&gt; &gt; configuration and contact me offlist.<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; ===/etc/gluster/gluster-server.vol<br>
&gt; &gt;&gt; &gt; volume posix<br>
&gt; &gt;&gt; &gt; &nbsp; &nbsp; type storage/posix<br>
&gt; &gt;&gt; &gt; &nbsp; &nbsp; option directory /gfsvol/data<br>
&gt; &gt;&gt; &gt; end-volume<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; volume plocks<br>
&gt; &gt;&gt; &gt; &nbsp; type features/posix-locks<br>
&gt; &gt;&gt; &gt; &nbsp; subvolumes posix<br>
&gt; &gt;&gt; &gt; end-volume<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; volume writebehind<br>
&gt; &gt;&gt; &gt; &nbsp; type performance/write-behind<br>
&gt; &gt;&gt; &gt; &nbsp; option flush-behind off &nbsp; &nbsp;# default is &#39;off&#39;<br>
&gt; &gt;&gt; &gt; &nbsp; subvolumes plocks<br>
&gt; &gt;&gt; &gt; end-volume<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; volume readahead<br>
&gt; &gt;&gt; &gt; &nbsp; type performance/read-ahead<br>
&gt; &gt;&gt; &gt; &nbsp; option page-size 128kB &nbsp; &nbsp; &nbsp; &nbsp;# 256KB is the default option<br>
&gt; &gt;&gt; &gt; &nbsp; option page-count 4 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 2 is default option<br>
&gt; &gt;&gt; &gt; &nbsp; option force-atime-update off # default is off<br>
&gt; &gt;&gt; &gt; &nbsp; subvolumes writebehind<br>
&gt; &gt;&gt; &gt; end-volume<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; volume brick<br>
&gt; &gt;&gt; &gt; &nbsp; type performance/io-threads<br>
&gt; &gt;&gt; &gt; &nbsp; option thread-count 4 &nbsp;# deault is 1<br>
&gt; &gt;&gt; &gt; &nbsp; option cache-size 64MB #64MB<br>
&gt; &gt;&gt; &gt; &nbsp; subvolumes readahead<br>
&gt; &gt;&gt; &gt; end-volume<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; volume server<br>
&gt; &gt;&gt; &gt; &nbsp; &nbsp; type protocol/server<br>
&gt; &gt;&gt; &gt; &nbsp; &nbsp; option transport-type tcp/server<br>
&gt; &gt;&gt; &gt; &nbsp; &nbsp; subvolumes brick<br>
&gt; &gt;&gt; &gt; &nbsp; &nbsp; option auth.ip.brick.allow <a href="http://10.8.1." target="_blank">10.8.1.</a>*,<a href="http://127.0.0.1" target="_blank">127.0.0.1</a><br>
&gt; &gt;&gt; &gt; end-volume<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; ===/etc/glusterfs/gluster-client.vol<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; volume brick1<br>
&gt; &gt;&gt; &gt; &nbsp; &nbsp; type protocol/client<br>
&gt; &gt;&gt; &gt; &nbsp; &nbsp; option transport-type tcp/client # for TCP/IP transport<br>
&gt; &gt;&gt; &gt; &nbsp; &nbsp; option remote-host <a href="http://10.8.1.9" target="_blank">10.8.1.9</a> &nbsp; # IP address of server1<br>
&gt; &gt;&gt; &gt; &nbsp; &nbsp; option remote-subvolume brick &nbsp; &nbsp;# name of the remote volume on<br>
&gt; &gt;&gt; &gt; server1<br>
&gt; &gt;&gt; &gt; end-volume<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; volume brick2<br>
&gt; &gt;&gt; &gt; &nbsp; &nbsp; type protocol/client<br>
&gt; &gt;&gt; &gt; &nbsp; &nbsp; option transport-type tcp/client # for TCP/IP transport<br>
&gt; &gt;&gt; &gt; &nbsp; &nbsp; option remote-host <a href="http://10.8.1.10" target="_blank">10.8.1.10</a> &nbsp; # IP address of server2<br>
&gt; &gt;&gt; &gt; &nbsp; &nbsp; option remote-subvolume brick &nbsp; &nbsp;# name of the remote volume on<br>
&gt; &gt;&gt; &gt; server2<br>
&gt; &gt;&gt; &gt; end-volume<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; volume afr<br>
&gt; &gt;&gt; &gt; &nbsp; &nbsp;type cluster/afr<br>
&gt; &gt;&gt; &gt; &nbsp; &nbsp;subvolumes brick1 brick2<br>
&gt; &gt;&gt; &gt; end-volume<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; volume writebehind<br>
&gt; &gt;&gt; &gt; &nbsp; type performance/write-behind<br>
&gt; &gt;&gt; &gt; &nbsp; option aggregate-size 0MB<br>
&gt; &gt;&gt; &gt; &nbsp; option flush-behind off &nbsp; &nbsp;# default is &#39;off&#39;<br>
&gt; &gt;&gt; &gt; &nbsp; subvolumes afr<br>
&gt; &gt;&gt; &gt; end-volume<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; volume readahead<br>
&gt; &gt;&gt; &gt; &nbsp; type performance/read-ahead<br>
&gt; &gt;&gt; &gt; &nbsp; option page-size 128kB &nbsp; &nbsp; &nbsp; &nbsp;# 256KB is the default option<br>
&gt; &gt;&gt; &gt; &nbsp; option page-count 4 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 2 is default option<br>
&gt; &gt;&gt; &gt; &nbsp; option force-atime-update off # default is off<br>
&gt; &gt;&gt; &gt; &nbsp; subvolumes writebehind<br>
&gt; &gt;&gt; &gt; end-volume<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt; &gt;&gt; &gt; Gluster-users mailing list<br>
&gt; &gt;&gt; &gt; <a href="mailto:Gluster-users@gluster.org">Gluster-users@gluster.org</a><br>
&gt; &gt;&gt; &gt; <a href="http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users" target="_blank">http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users</a><br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; &gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; _______________________________________________<br>
&gt; &gt;&gt; Gluster-users mailing list<br>
&gt; &gt;&gt; <a href="mailto:Gluster-users@gluster.org">Gluster-users@gluster.org</a><br>
&gt; &gt;&gt; <a href="http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users" target="_blank">http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users</a><br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; !DSPAM:1,489aa3b2286571187917547!<br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
&gt;_______________________________________________<br>
&gt;Gluster-users mailing list<br>
&gt;<a href="mailto:Gluster-users@gluster.org">Gluster-users@gluster.org</a><br>
&gt;<a href="http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users" target="_blank">http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users</a><br>
<br>
<br>
_______________________________________________<br>
Gluster-users mailing list<br>
<a href="mailto:Gluster-users@gluster.org">Gluster-users@gluster.org</a><br>
<a href="http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users" target="_blank">http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users</a><br>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Amar Tumballi<br>Gluster/GlusterFS Hacker<br>[bulde on #gluster/<a href="http://irc.gnu.org">irc.gnu.org</a>]<br><a href="http://www.zresearch.com">http://www.zresearch.com</a> - Commoditizing Super Storage!<br>

</div>