Re: [Gluster-users] Segfaults after upgrade to GlusterFS 3.10.9
What's /proc/sys/kernel/core_pattern set to for you? For me it is % cat /proc/sys/kernel/core_pattern core which will drop a core file in the working directory of the process. On 19/01/2018 12.56, Frank Wall wrote: > Is there something I could do to trigger the creation of core files? ___ Gluster-users mailing list Gluster-users@gluster.org http://lists.gluster.org/mailman/listinfo/gluster-users
Re: [Gluster-users] create volume in two different Data Centers
On 24/10/17 13:01, Alessandro Briosi wrote: > I would set up a VPN (tinc could work well). I, too, would recommend to try tinc for this, it can automatically route traffic of nodes that don't have direct access to other nodes via those nodes that do. I have a publicly available setup of Gluster over tinc on NixOS here: https://github.com/nh2/nixops-gluster-example/ and it works pretty well, certainly tinc is not a bottleneck in it (though note my nodes do have full mesh connectivity and I use this only with 0.5 ms latency). ___ Gluster-users mailing list Gluster-users@gluster.org http://lists.gluster.org/mailman/listinfo/gluster-users
Re: [Gluster-users] Confusing lstat() performance
Note, I have now put out a patch for bup that makes it 50x faster on my 1M files on gluster, exploiting the fact that stat() is fast after getdents() on it: https://groups.google.com/forum/#!topic/bup-list/6CM7Jr7b_Ek I'd still be interested in answers to this question though: > What caching could this be, and how could I convince gluster to serve > these stat()s as fast as if a getdents() had been done just before them? ___ Gluster-users mailing list Gluster-users@gluster.org http://lists.gluster.org/mailman/listinfo/gluster-users
Re: [Gluster-users] Confusing lstat() performance
On 18/09/17 17:23, Ben Turner wrote: > Do you want tuned or untuned? If tuned I'd like to try one of my tunings for > metadata, but I will use yours if you want. (Re-CC'd list) I would be interested in both, if possible: To confirm that it's not only my machines that exhibit this behaviour given my settings, and to see what can be achieved with your tuned settings. Thank you! ___ Gluster-users mailing list Gluster-users@gluster.org http://lists.gluster.org/mailman/listinfo/gluster-users
Re: [Gluster-users] Confusing lstat() performance
On 18/09/17 16:51, Ben Turner wrote: > I wouldn't mind, but I don't have your dataset. Oh sorry, I thought I had posted that here but in fact I did so in a different issue regarding getdents() performance (bug 1478411). My benchmarking data set is trivial: 100k empty files. In a directory on your gluster mount: seq 1 10 | xargs touch I found this simple benchmark data set (and even 10k empty files) to exhibit the same lstat() problems as my directory with 1M files "real" work load. ___ Gluster-users mailing list Gluster-users@gluster.org http://lists.gluster.org/mailman/listinfo/gluster-users
Re: [Gluster-users] Confusing lstat() performance
Hi Ben, do you know if the smallfile benchmark also does interleaved getdents() and lstat, which is what I found as being the key difference that creates the performance gap (further down this thread)? Also, wouldn't `--threads 8` change the performance numbers by factor 8 versus the plain `ls` and `rsync` that I did? Would you mind running those commands directly/plainly on your cluster to confirm or refute my numbers? Thanks! ___ Gluster-users mailing list Gluster-users@gluster.org http://lists.gluster.org/mailman/listinfo/gluster-users
Re: [Gluster-users] Confusing lstat() performance
I found the reason now, at least for this set of lstat()s I was looking at. bup first does all getdents(), obtaining all file names in the directory, and then stat()s them. Apparently this destroys some of gluster's caching, making stat()s ~100x slower. What caching could this be, and how could I convince gluster to serve these stat()s as fast as if a getdents() had been done just before them? ___ Gluster-users mailing list Gluster-users@gluster.org http://lists.gluster.org/mailman/listinfo/gluster-users
Re: [Gluster-users] Confusing lstat() performance
On 17/09/17 18:03, Niklas Hambüchen wrote: > So far the only difference between `ls` and `bup index` I could observe > is that `bup index` chdir()s into the directory to index, ls doesn't. > > But when I `cd` into the dir and run `ls` without directory argument, it > is still much faster than bup index for each stat(). Hmm, bup uses the fchdir() syscall to go into the target directory. Might that make a difference for gluster? ___ Gluster-users mailing list Gluster-users@gluster.org http://lists.gluster.org/mailman/listinfo/gluster-users
Re: [Gluster-users] Confusing lstat() performance
On 15/09/17 03:46, Niklas Hambüchen wrote: >> Out of interest have you tried testing performance >> with performance.stat-prefetch enabled? I have now tested with `performance.stat-prefetch: on` but am not observing a difference. So far the only difference between `ls` and `bup index` I could observe is that `bup index` chdir()s into the directory to index, ls doesn't. But when I `cd` into the dir and run `ls` without directory argument, it is still much faster than bup index for each stat(). ___ Gluster-users mailing list Gluster-users@gluster.org http://lists.gluster.org/mailman/listinfo/gluster-users
Re: [Gluster-users] Confusing lstat() performance
On 15/09/17 02:45, Sam McLeod wrote: > Out of interest have you tried testing performance > with performance.stat-prefetch enabled? Not yet, because I'm still struggling to understand the current more basic setup's performance behaviour (with it being off), but it's definitely on my list and I'll report the outcome. ___ Gluster-users mailing list Gluster-users@gluster.org http://lists.gluster.org/mailman/listinfo/gluster-users
[Gluster-users] Confusing lstat() performance
Hi, I have a gluster 3.10 volume with a dir with ~1 million small files in them, say mounted at /mnt/dir with FUSE, and I'm observing something weird: When I list and stat them all using rsync, then the lstat() calls that rsync does are incredibly fast (23 microseconds per call on average, definitely faster than a network roundtrip between my 3-machine bricks connected via Ethernet). But when I try to back them up with the `bup` tool (https://github.com/bup/bup), which (at least according to strace) does the same syscalls as rsync to stat all files, it takes 1700 microseconds per lstat() call, and the total time to go over all files is 50x higher. These are my strace statistics: rsync strace: $ strace -f -w -c rsync -a --dry-run /mnt/dir /tmp/nonexisting % time seconds usecs/call callserrors syscall -- --- --- - - 52.35 69.682773 26617 2618 1 select 39.60 52.7122921056 49907 getdents 8.00 10.655949 11998102 lstat 0.020.022890 12 1900 read 0.010.017219 21 829 write 0.010.012093 14 868 munmap 0.010.006656 11 606 mmap 0.000.0041681389 3 readlink 0.000.0017961796 1 chdir 0.000.001019 510 2 clone 0.000.000841 441913 open Took ~50 seconds real time to complete. bup strace (I interrupted it after a while): strace: Process 10749 attached strace: Process 10750 attached Indexing: 25600 (566 paths/s) ^C % time seconds usecs/call callserrors syscall -- --- --- - - 89.55 1140.8373251700671016 lstat 3.92 49.875376 934 53387 getdents 3.58 45.655985 52238 874 read 2.14 27.293944 789 34588 5799 open 0.577.266342 141 51384 llistxattr 0.091.090689 42 25692 25692 getxattr 0.060.780977 26 29825 1019 close 0.050.601806 23 25739 25722 ioctl 0.030.3738941851 202 select 0.000.055953 14 3879 brk real20m52.150s user0m2.608s sys 0m11.456s Note I passed `-c -w` to strace to measure wall time of the syscalls spend, not system CPU time. Using time strace -f -c -w ls -lU /mnt/dir > /dev/null shows that ls is as fast as rsync (also in 50 seconds). (Aside: I've filed the large number of getdents() as https://bugzilla.redhat.com/show_bug.cgi?id=1478411 but that's not the core question of this email.) My volume info: # gluster vol info Volume Name: myvol Type: Replicate Volume ID: ... Status: Started Snapshot Count: 0 Number of Bricks: 1 x 3 = 3 Transport-type: tcp Bricks: Brick1: 10.0.0.1:/data/glusterfs/brick Brick2: 10.0.0.2:/data/glusterfs/brick Brick3: 10.0.0.3:/data/glusterfs/brick Options Reconfigured: changelog.capture-del-path: on changelog.changelog: on storage.build-pgfid: on nfs.disable: on transport.address-family: inet client.ssl: on server.ssl: on storage.linux-aio: on performance.io-thread-count: 64 performance.readdir-ahead: on server.event-threads: 32 client.event-threads: 32 server.outstanding-rpc-limit: 64 cluster.lookup-unhashed: auto performance.flush-behind: on performance.strict-write-ordering: off performance.high-prio-threads: 64 performance.normal-prio-threads: 64 performance.low-prio-threads: 64 performance.write-behind-window-size: 10MB cluster.ensure-durability: on performance.lazy-open: yes cluster.use-compound-fops: off performance.open-behind: on features.cache-invalidation: off performance.quick-read: off performance.read-ahead: off performance.stat-prefetch: off changelog.rollover-time: 1 cluster.self-heal-daemon: enable Questions: What could explain why bup's lstat()s are slow and rsync's lstat()s are fast? Also, how comes rsync's lstat()s can be faster than a network roundtrip at all, given that I have all caching disabled (e.g. stat-prefetch: off, cache-invalidation: off)? Is there some caching going on? Might bup issue its syscalls in an order that might destroy this caching, while rsync and ls use a favourable order? Thanks! ___ Gluster-users mailing list Gluster-users@gluster.org http://lists.gluster.org/mailman/listinfo/gluster-users
Re: [Gluster-users] Issue in installing Gluster 3.9.0
I also found that the Ubuntu PPAs maintained by the gluster team, when unpacked, contain a patch in the debian/patches directory that addresses these issues (but of course it'd be better to have it fixed upstream). On 22/02/17 18:42, Shyam wrote: > Optionally try patching the sources with this commit and building, > > https://review.gluster.org/#/c/15737/2 > > Shyam > > On 02/09/2017 02:26 AM, Amudhan P wrote: >> Hi All, >> >> Using 'configure --disable-events` fixes above problem. >> >> Thank you, Niklas for forwarding this info. >> >> regards >> Amudhan ___ Gluster-users mailing list Gluster-users@gluster.org http://lists.gluster.org/mailman/listinfo/gluster-users