Hu Bert
2018-Aug-28 05:04 UTC
[Gluster-users] Gluter 3.12.12: performance during heal and in general
Good Morning,
today i update + rebooted all gluster servers, kernel update to
4.9.0-8 and gluster to 3.12.13. Reboots went fine, but on one of the
gluster servers (gluster13) one of the bricks did come up at the
beginning but then lost connection.
OK:
Status of volume: shared
Gluster process TCP Port RDMA Port Online Pid
------------------------------------------------------------------------------
[...]
Brick gluster11:/gluster/bricksdd1/shared 49155 0
Y 2506
Brick gluster12:/gluster/bricksdd1_new/shared 49155 0
Y 2097
Brick gluster13:/gluster/bricksdd1_new/shared 49155 0
Y 2136
Lost connection:
Brick gluster11:/gluster/bricksdd1/shared 49155 0
Y 2506
Brick gluster12:/gluster/bricksdd1_new/shared 49155 0
Y 2097
Brick gluster13:/gluster/bricksdd1_new/shared N/A N/A
N N/A
gluster volume heal shared info:
Brick gluster13:/gluster/bricksdd1_new/shared
Status: Transport endpoint is not connected
Number of entries: -
reboot was at 06:15:39; brick then worked for a short period, but then
somehow disconnected.
from gluster13:/var/log/glusterfs/glusterd.log:
[2018-08-28 04:27:36.944608] I [MSGID: 106005]
[glusterd-handler.c:6071:__glusterd_brick_rpc_notify] 0-management:
Brick gluster13:/gluster/bricksdd1_new/shared has disconnected from
glusterd.
[2018-08-28 04:28:57.869666] I
[glusterd-utils.c:6056:glusterd_brick_start] 0-management: starting a
fresh brick process for brick /gluster/bricksdd1_new/shared
[2018-08-28 04:35:20.732666] I [MSGID: 106143]
[glusterd-pmap.c:295:pmap_registry_bind] 0-pmap: adding brick
/gluster/bricksdd1_new/shared on port 49157
After 'gluster volume start shared force' (then with new port 49157):
Brick gluster11:/gluster/bricksdd1/shared 49155 0
Y 2506
Brick gluster12:/gluster/bricksdd1_new/shared 49155 0
Y 2097
Brick gluster13:/gluster/bricksdd1_new/shared 49157 0
Y 3994
from /var/log/syslog:
Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: pending frames:
Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: frame :
type(0) op(0)
Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: frame :
type(0) op(0)
Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]:
patchset: git://git.gluster.org/glusterfs.git
Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: signal
received: 11
Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: time of crash:
Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]:
2018-08-28 04:27:36
Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]:
configuration details:
Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: argp 1
Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: backtrace 1
Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: dlfcn 1
Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: libpthread 1
Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: llistxattr 1
Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: setfsid 1
Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: spinlock 1
Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: epoll.h 1
Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: xattr.h 1
Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: st_atim.tv_nsec 1
Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]:
package-string: glusterfs 3.12.13
Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: ---------
There are some errors+warnings in the shared.log (volume logfile), but
no error message telling me why
gluster13:/gluster/bricksdd1_new/shared has disconnected.
Well... at the moment load is ok, all 3 servers at about 15 (but i
think it will go up when more users will cause more traffic -> more
work on servers), 'gluster volume heal shared info' shows no entries,
status:
Status of volume: shared
Gluster process TCP Port RDMA Port Online Pid
------------------------------------------------------------------------------
Brick gluster11:/gluster/bricksda1/shared 49152 0 Y 2482
Brick gluster12:/gluster/bricksda1/shared 49152 0 Y 2088
Brick gluster13:/gluster/bricksda1/shared 49152 0 Y 2115
Brick gluster11:/gluster/bricksdb1/shared 49153 0 Y 2489
Brick gluster12:/gluster/bricksdb1/shared 49153 0 Y 2094
Brick gluster13:/gluster/bricksdb1/shared 49153 0 Y 2116
Brick gluster11:/gluster/bricksdc1/shared 49154 0 Y 2497
Brick gluster12:/gluster/bricksdc1/shared 49154 0 Y 2095
Brick gluster13:/gluster/bricksdc1/shared 49154 0 Y 2127
Brick gluster11:/gluster/bricksdd1/shared 49155 0 Y 2506
Brick gluster12:/gluster/bricksdd1_new/shared 49155 0
Y 2097
Brick gluster13:/gluster/bricksdd1_new/shared 49157 0
Y 3994
Self-heal Daemon on localhost N/A N/A Y 4868
Self-heal Daemon on gluster12 N/A N/A Y 3813
Self-heal Daemon on gluster11 N/A N/A Y 5762
Task Status of Volume shared
------------------------------------------------------------------------------
There are no active volume tasks
Very strange. Thanks for reading if you've reached this line :-)
2018-08-23 13:58 GMT+02:00 Pranith Kumar Karampuri <pkarampu at
redhat.com>:>
>
> On Wed, Aug 22, 2018 at 12:01 PM Hu Bert <revirii at googlemail.com>
wrote:
>>
>> Just an addition: in general there are no log messages in
>> /var/log/glusterfs/ (if you don't all 'gluster volume
...'), but on
>> the node with the lowest load i see in cli.log.1:
>>
>> [2018-08-22 06:20:43.291055] I [socket.c:2474:socket_event_handler]
>> 0-transport: EPOLLERR - disconnecting now
>> [2018-08-22 06:20:46.291327] I [socket.c:2474:socket_event_handler]
>> 0-transport: EPOLLERR - disconnecting now
>> [2018-08-22 06:20:49.291575] I [socket.c:2474:socket_event_handler]
>> 0-transport: EPOLLERR - disconnecting now
>>
>> every 3 seconds. Looks like this bug:
>> https://bugzilla.redhat.com/show_bug.cgi?id=1484885 - but that shoud
>> have been fixed in the 3.12.x release, and network is fine.
>
>
> +Milind Changire
>
>>
>> In cli.log there are only these entries:
>>
>> [2018-08-22 06:19:23.428520] I [cli.c:765:main] 0-cli: Started running
>> gluster with version 3.12.12
>> [2018-08-22 06:19:23.800895] I [MSGID: 101190]
>> [event-epoll.c:613:event_dispatch_epoll_worker] 0-epoll: Started
>> thread with index 1
>> [2018-08-22 06:19:23.800978] I [socket.c:2474:socket_event_handler]
>> 0-transport: EPOLLERR - disconnecting now
>> [2018-08-22 06:19:23.809366] I [input.c:31:cli_batch] 0-: Exiting with:
0
>>
>> Just wondered if this could related anyhow.
>>
>> 2018-08-21 8:17 GMT+02:00 Pranith Kumar Karampuri <pkarampu at
redhat.com>:
>> >
>> >
>> > On Tue, Aug 21, 2018 at 11:40 AM Hu Bert <revirii at
googlemail.com> wrote:
>> >>
>> >> Good morning :-)
>> >>
>> >> gluster11:
>> >> ls -l /gluster/bricksdd1/shared/.glusterfs/indices/xattrop/
>> >> total 0
>> >> ---------- 1 root root 0 Aug 14 06:14
>> >> xattrop-006b65d8-9e81-4886-b380-89168ea079bd
>> >>
>> >> gluster12:
>> >> ls -l
/gluster/bricksdd1_new/shared/.glusterfs/indices/xattrop/
>> >> total 0
>> >> ---------- 1 root root 0 Jul 17 11:24
>> >> xattrop-c7c6f765-ce17-4361-95fb-2fd7f31c7b82
>> >>
>> >> gluster13:
>> >> ls -l
/gluster/bricksdd1_new/shared/.glusterfs/indices/xattrop/
>> >> total 0
>> >> ---------- 1 root root 0 Aug 16 07:54
>> >> xattrop-16b696a0-4214-4999-b277-0917c76c983e
>> >>
>> >>
>> >> And here's the output of 'perf ...' which ran
almost a minute - file
>> >> grew pretty fast to a size of 17 GB and system load went up
heavily.
>> >> Had to wait a while until load dropped :-)
>> >>
>> >> fyi - load at the moment:
>> >> load gluster11: ~90
>> >> load gluster12: ~10
>> >> load gluster13: ~50
>> >>
>> >> perf record --call-graph=dwarf -p 7897 -o
>> >> /tmp/perf.gluster11.bricksdd1.out
>> >> [ perf record: Woken up 9837 times to write data ]
>> >> Warning:
>> >> Processed 2137218 events and lost 33446 chunks!
>> >>
>> >> Check IO/CPU overload!
>> >>
>> >> [ perf record: Captured and wrote 16576.374 MB
>> >> /tmp/perf.gluster11.bricksdd1.out (2047760 samples) ]
>> >>
>> >> Here's an excerpt.
>> >>
>> >> + 1.93% 0.00% glusteriotwr0 [unknown]
[k]
>> >> 0xffffffffffffffff
>> >> + 1.89% 0.00% glusteriotwr28 [unknown]
[k]
>> >> 0xffffffffffffffff
>> >> + 1.86% 0.00% glusteriotwr15 [unknown]
[k]
>> >> 0xffffffffffffffff
>> >> + 1.85% 0.00% glusteriotwr63 [unknown]
[k]
>> >> 0xffffffffffffffff
>> >> + 1.83% 0.01% glusteriotwr0 [kernel.kallsyms]
[k]
>> >> entry_SYSCALL_64_after_swapgs
>> >> + 1.82% 0.00% glusteriotwr38 [unknown]
[k]
>> >> 0xffffffffffffffff
>> >> + 1.82% 0.01% glusteriotwr28 [kernel.kallsyms]
[k]
>> >> entry_SYSCALL_64_after_swapgs
>> >> + 1.82% 0.00% glusteriotwr0 [kernel.kallsyms]
[k]
>> >> do_syscall_64
>> >> + 1.81% 0.00% glusteriotwr28 [kernel.kallsyms]
[k]
>> >> do_syscall_64
>> >> + 1.81% 0.00% glusteriotwr15 [kernel.kallsyms]
[k]
>> >> entry_SYSCALL_64_after_swapgs
>> >> + 1.81% 0.00% glusteriotwr36 [unknown]
[k]
>> >> 0xffffffffffffffff
>> >> + 1.80% 0.00% glusteriotwr15 [kernel.kallsyms]
[k]
>> >> do_syscall_64
>> >> + 1.78% 0.01% glusteriotwr63 [kernel.kallsyms]
[k]
>> >> entry_SYSCALL_64_after_swapgs
>> >> + 1.77% 0.00% glusteriotwr63 [kernel.kallsyms]
[k]
>> >> do_syscall_64
>> >> + 1.75% 0.01% glusteriotwr38 [kernel.kallsyms]
[k]
>> >> entry_SYSCALL_64_after_swapgs
>> >> + 1.75% 0.00% glusteriotwr38 [kernel.kallsyms]
[k]
>> >> do_syscall_64
>> >> + 1.74% 0.00% glusteriotwr17 [unknown]
[k]
>> >> 0xffffffffffffffff
>> >> + 1.74% 0.00% glusteriotwr44 [unknown]
[k]
>> >> 0xffffffffffffffff
>> >> + 1.73% 0.00% glusteriotwr6 [unknown]
[k]
>> >> 0xffffffffffffffff
>> >> + 1.73% 0.00% glusteriotwr37 [unknown]
[k]
>> >> 0xffffffffffffffff
>> >> + 1.73% 0.01% glusteriotwr36 [kernel.kallsyms]
[k]
>> >> entry_SYSCALL_64_after_swapgs
>> >> + 1.72% 0.00% glusteriotwr34 [unknown]
[k]
>> >> 0xffffffffffffffff
>> >> + 1.72% 0.00% glusteriotwr36 [kernel.kallsyms]
[k]
>> >> do_syscall_64
>> >> + 1.71% 0.00% glusteriotwr45 [unknown]
[k]
>> >> 0xffffffffffffffff
>> >> + 1.70% 0.00% glusteriotwr7 [unknown]
[k]
>> >> 0xffffffffffffffff
>> >> + 1.68% 0.00% glusteriotwr15 [kernel.kallsyms]
[k]
>> >> sys_getdents
>> >> + 1.68% 0.00% glusteriotwr15 [kernel.kallsyms]
[k]
>> >> filldir
>> >> + 1.68% 0.00% glusteriotwr15 libc-2.24.so
[.]
>> >> 0xffff80c60db8ef2b
>> >> + 1.68% 0.00% glusteriotwr15 libc-2.24.so
[.]
>> >> readdir64
>> >> + 1.68% 0.00% glusteriotwr15 index.so
[.]
>> >> 0xffff80c6192a1888
>> >> + 1.68% 0.00% glusteriotwr15 [kernel.kallsyms]
[k]
>> >> iterate_dir
>> >> + 1.68% 0.00% glusteriotwr15 [kernel.kallsyms]
[k]
>> >> ext4_htree_fill_tree
>> >> + 1.68% 0.00% glusteriotwr15 [kernel.kallsyms]
[k]
>> >> ext4_readdir
>> >>
>> >> Or do you want to download the file
/tmp/perf.gluster11.bricksdd1.out
>> >> and examine it yourself? If so i could send you a link.
>> >
>> >
>> > Thank you! yes a link would be great. I am not as good with kernel
side
>> > of
>> > things. So I will have to show this information to someone else
who
>> > knows
>> > these things so expect delay in response.
>> >
>> >>
>> >>
>> >>
>> >> 2018-08-21 7:13 GMT+02:00 Pranith Kumar Karampuri
>> >> <pkarampu at redhat.com>:
>> >> >
>> >> >
>> >> > On Tue, Aug 21, 2018 at 10:13 AM Pranith Kumar Karampuri
>> >> > <pkarampu at redhat.com> wrote:
>> >> >>
>> >> >>
>> >> >>
>> >> >> On Mon, Aug 20, 2018 at 3:20 PM Hu Bert <revirii
at googlemail.com>
>> >> >> wrote:
>> >> >>>
>> >> >>> Regarding hardware the machines are identical.
Intel Xeon E5-1650
>> >> >>> v3
>> >> >>> Hexa-Core; 64 GB DDR4 ECC; Dell PERC H330 8 Port
SAS/SATA 12 GBit/s
>> >> >>> RAID Controller; operating system running on a
raid1, then 4 disks
>> >> >>> (JBOD) as bricks.
>> >> >>>
>> >> >>> Ok, i ran perf for a few seconds.
>> >> >>>
>> >> >>> ------------------------
>> >> >>> perf record --call-graph=dwarf -p 7897 -o
>> >> >>> /tmp/perf.gluster11.bricksdd1.out
>> >> >>> ^C[ perf record: Woken up 378 times to write data
]
>> >> >>> Warning:
>> >> >>> Processed 83690 events and lost 96 chunks!
>> >> >>>
>> >> >>> Check IO/CPU overload!
>> >> >>>
>> >> >>> [ perf record: Captured and wrote 423.087 MB
>> >> >>> /tmp/perf.gluster11.bricksdd1.out (51744 samples)
]
>> >> >>> ------------------------
>> >> >>>
>> >> >>> I copied a couple of lines:
>> >> >>>
>> >> >>> + 8.10% 0.00% glusteriotwr22 [unknown]
[k]
>> >> >>> 0xffffffffffffffff
>> >> >>> + 8.10% 0.00% glusteriotwr22
[kernel.kallsyms] [k]
>> >> >>> iterate_dir
>> >> >>> + 8.10% 0.00% glusteriotwr22
[kernel.kallsyms] [k]
>> >> >>> sys_getdents
>> >> >>> + 8.10% 0.00% glusteriotwr22
[kernel.kallsyms] [k]
>> >> >>> filldir
>> >> >>> + 8.10% 0.00% glusteriotwr22
[kernel.kallsyms] [k]
>> >> >>> do_syscall_64
>> >> >>> + 8.10% 0.00% glusteriotwr22
[kernel.kallsyms] [k]
>> >> >>> entry_SYSCALL_64_after_swapgs
>> >> >>> + 8.10% 0.00% glusteriotwr22
libc-2.24.so [.]
>> >> >>> 0xffff80c60db8ef2b
>> >> >>> + 8.10% 0.00% glusteriotwr22
libc-2.24.so [.]
>> >> >>> readdir64
>> >> >>> + 8.10% 0.00% glusteriotwr22 index.so
[.]
>> >> >>> 0xffff80c6192a1888
>> >> >>> + 8.10% 0.04% glusteriotwr22
[kernel.kallsyms] [k]
>> >> >>> ext4_htree_fill_tree
>> >> >>> + 8.10% 0.00% glusteriotwr22
[kernel.kallsyms] [k]
>> >> >>> ext4_readdir
>> >> >>> + 7.95% 0.12% glusteriotwr22
[kernel.kallsyms] [k]
>> >> >>> htree_dirblock_to_tree
>> >> >>> + 5.78% 0.96% glusteriotwr22
[kernel.kallsyms] [k]
>> >> >>> __ext4_read_dirblock
>> >> >>> + 4.80% 0.02% glusteriotwr22
[kernel.kallsyms] [k]
>> >> >>> ext4_bread
>> >> >>> + 4.78% 0.04% glusteriotwr22
[kernel.kallsyms] [k]
>> >> >>> ext4_getblk
>> >> >>> + 4.72% 0.02% glusteriotwr22
[kernel.kallsyms] [k]
>> >> >>> __getblk_gfp
>> >> >>> + 4.57% 0.00% glusteriotwr3 [unknown]
[k]
>> >> >>> 0xffffffffffffffff
>> >> >>> + 4.55% 0.00% glusteriotwr3
[kernel.kallsyms] [k]
>> >> >>> do_syscall_64
>> >> >>>
>> >> >>> Do you need different or additional information?
>> >> >>
>> >> >>
>> >> >> This looks like there are lot of readdirs going on
which is
>> >> >> different
>> >> >> from
>> >> >> what we observed earlier, how many seconds did you do
perf record
>> >> >> for?
>> >> >> Will
>> >> >> it be possible for you to do this for some more time?
may be a
>> >> >> minute?
>> >> >> Just
>> >> >> want to be sure that the data actually represents
what we are
>> >> >> observing.
>> >> >
>> >> >
>> >> > I found one code path which on lookup does readdirs.
Could you give
>> >> > me
>> >> > the
>> >> > output of ls -l
<brick-path>/.glusterfs/indices/xattrop on all the
>> >> > three
>> >> > bricks? It can probably give a correlation to see if it
is indeed the
>> >> > same
>> >> > issue or not.
>> >> >
>> >> >>
>> >> >>
>> >> >>>
>> >> >>>
>> >> >>>
>> >> >>> 2018-08-20 11:20 GMT+02:00 Pranith Kumar
Karampuri
>> >> >>> <pkarampu at redhat.com>:
>> >> >>> > Even the brick which doesn't have high
CPU seems to have same
>> >> >>> > number
>> >> >>> > of
>> >> >>> > lookups, so that's not it.
>> >> >>> > Is there any difference at all between the
machines which have
>> >> >>> > high
>> >> >>> > CPU
>> >> >>> > vs
>> >> >>> > low CPU?
>> >> >>> > I think the only other thing I would do is
to install perf tools
>> >> >>> > and
>> >> >>> > try to
>> >> >>> > figure out the call-graph which is leading
to so much CPU
>> >> >>> >
>> >> >>> > This affects performance of the brick I
think, so you may have to
>> >> >>> > do
>> >> >>> > it
>> >> >>> > quickly and for less time.
>> >> >>> >
>> >> >>> > perf record --call-graph=dwarf -p
<brick-pid> -o
>> >> >>> > </path/to/output>
>> >> >>> > then
>> >> >>> > perf report -i
</path/to/output/given/in/the/previous/command>
>> >> >>> >
>> >> >>> >
>> >> >>> > On Mon, Aug 20, 2018 at 2:40 PM Hu Bert
<revirii at googlemail.com>
>> >> >>> > wrote:
>> >> >>> >>
>> >> >>> >> gluster volume heal shared info | grep
-i number
>> >> >>> >> Number of entries: 0
>> >> >>> >> Number of entries: 0
>> >> >>> >> Number of entries: 0
>> >> >>> >> Number of entries: 0
>> >> >>> >> Number of entries: 0
>> >> >>> >> Number of entries: 0
>> >> >>> >> Number of entries: 0
>> >> >>> >> Number of entries: 0
>> >> >>> >> Number of entries: 0
>> >> >>> >> Number of entries: 0
>> >> >>> >> Number of entries: 0
>> >> >>> >> Number of entries: 0
>> >> >>> >>
>> >> >>> >> Looks good to me.
>> >> >>> >>
>> >> >>> >>
>> >> >>> >> 2018-08-20 10:51 GMT+02:00 Pranith Kumar
Karampuri
>> >> >>> >> <pkarampu at redhat.com>:
>> >> >>> >> > There are a lot of Lookup
operations in the system. But I am
>> >> >>> >> > not
>> >> >>> >> > able to
>> >> >>> >> > find why. Could you check the
output of
>> >> >>> >> >
>> >> >>> >> > # gluster volume heal
<volname> info | grep -i number
>> >> >>> >> >
>> >> >>> >> > it should print all zeros.
>> >> >>> >> >
>> >> >>> >> > On Fri, Aug 17, 2018 at 1:49 PM Hu
Bert
>> >> >>> >> > <revirii at googlemail.com>
>> >> >>> >> > wrote:
>> >> >>> >> >>
>> >> >>> >> >> I don't know what you
exactly mean with workload, but the
>> >> >>> >> >> main
>> >> >>> >> >> function of the volume is
storing (incl. writing, reading)
>> >> >>> >> >> images
>> >> >>> >> >> (from hundreds of bytes up to
30 MBs, overall ~7TB). The work
>> >> >>> >> >> is
>> >> >>> >> >> done
>> >> >>> >> >> by apache tomcat servers
writing to / reading from the
>> >> >>> >> >> volume.
>> >> >>> >> >> Besides
>> >> >>> >> >> images there are some text
files and binaries that are stored
>> >> >>> >> >> on
>> >> >>> >> >> the
>> >> >>> >> >> volume and get updated
regularly (every x hours); we'll try
>> >> >>> >> >> to
>> >> >>> >> >> migrate
>> >> >>> >> >> the latter ones to local
storage asap.
>> >> >>> >> >>
>> >> >>> >> >> Interestingly it's only one
process (and its threads) of the
>> >> >>> >> >> same
>> >> >>> >> >> brick on 2 of the gluster
servers that consumes the CPU.
>> >> >>> >> >>
>> >> >>> >> >> gluster11: bricksdd1; not
healed; full CPU
>> >> >>> >> >> gluster12: bricksdd1; got
healed; normal CPU
>> >> >>> >> >> gluster13: bricksdd1; got
healed; full CPU
>> >> >>> >> >>
>> >> >>> >> >> Besides: performance during
heal (e.g. gluster12, bricksdd1)
>> >> >>> >> >> was
>> >> >>> >> >> way
>> >> >>> >> >> better than it is now. I've
attached 2 pngs showing the
>> >> >>> >> >> differing
>> >> >>> >> >> cpu
>> >> >>> >> >> usage of last week before/after
heal.
>> >> >>> >> >>
>> >> >>> >> >> 2018-08-17 9:30 GMT+02:00
Pranith Kumar Karampuri
>> >> >>> >> >> <pkarampu at redhat.com>:
>> >> >>> >> >> > There seems to be too many
lookup operations compared to
>> >> >>> >> >> > any
>> >> >>> >> >> > other
>> >> >>> >> >> > operations. What is the
workload on the volume?
>> >> >>> >> >> >
>> >> >>> >> >> > On Fri, Aug 17, 2018 at
12:47 PM Hu Bert
>> >> >>> >> >> > <revirii at
googlemail.com>
>> >> >>> >> >> > wrote:
>> >> >>> >> >> >>
>> >> >>> >> >> >> i hope i did get it
right.
>> >> >>> >> >> >>
>> >> >>> >> >> >> gluster volume profile
shared start
>> >> >>> >> >> >> wait 10 minutes
>> >> >>> >> >> >> gluster volume profile
shared info
>> >> >>> >> >> >> gluster volume profile
shared stop
>> >> >>> >> >> >>
>> >> >>> >> >> >> If that's ok,
i've attached the output of the info
>> >> >>> >> >> >> command.
>> >> >>> >> >> >>
>> >> >>> >> >> >>
>> >> >>> >> >> >> 2018-08-17 8:31
GMT+02:00 Pranith Kumar Karampuri
>> >> >>> >> >> >> <pkarampu at
redhat.com>:
>> >> >>> >> >> >> > Please do volume
profile also for around 10 minutes when
>> >> >>> >> >> >> > CPU%
>> >> >>> >> >> >> > is
>> >> >>> >> >> >> > high.
>> >> >>> >> >> >> >
>> >> >>> >> >> >> > On Fri, Aug 17,
2018 at 11:56 AM Pranith Kumar Karampuri
>> >> >>> >> >> >> > <pkarampu at
redhat.com> wrote:
>> >> >>> >> >> >> >>
>> >> >>> >> >> >> >> As per the
output, all io-threads are using a lot of
>> >> >>> >> >> >> >> CPU.
>> >> >>> >> >> >> >> It
>> >> >>> >> >> >> >> is
>> >> >>> >> >> >> >> better
>> >> >>> >> >> >> >> to
>> >> >>> >> >> >> >> check what
the volume profile is to see what is leading
>> >> >>> >> >> >> >> to
>> >> >>> >> >> >> >> so
>> >> >>> >> >> >> >> much
>> >> >>> >> >> >> >> work
>> >> >>> >> >> >> >> for
>> >> >>> >> >> >> >> io-threads.
Please follow the documentation at
>> >> >>> >> >> >> >>
>> >> >>> >> >> >> >>
>> >> >>> >> >> >> >>
>> >> >>> >> >> >> >>
>> >> >>> >> >> >> >>
>> >> >>> >> >> >> >>
>> >> >>> >> >> >> >>
https://gluster.readthedocs.io/en/latest/Administrator%20Guide/Monitoring%20Workload/
>> >> >>> >> >> >> >> section:
"
>> >> >>> >> >> >> >>
>> >> >>> >> >> >> >> Running
GlusterFS Volume Profile Command"
>> >> >>> >> >> >> >>
>> >> >>> >> >> >> >> and attach
output of "gluster volume profile info",
>> >> >>> >> >> >> >>
>> >> >>> >> >> >> >> On Fri, Aug
17, 2018 at 11:24 AM Hu Bert
>> >> >>> >> >> >> >> <revirii
at googlemail.com>
>> >> >>> >> >> >> >> wrote:
>> >> >>> >> >> >> >>>
>> >> >>> >> >> >> >>> Good
morning,
>> >> >>> >> >> >> >>>
>> >> >>> >> >> >> >>> i ran the
command during 100% CPU usage and attached
>> >> >>> >> >> >> >>> the
>> >> >>> >> >> >> >>> file.
>> >> >>> >> >> >> >>> Hopefully
it helps.
>> >> >>> >> >> >> >>>
>> >> >>> >> >> >> >>>
2018-08-17 7:33 GMT+02:00 Pranith Kumar Karampuri
>> >> >>> >> >> >> >>>
<pkarampu at redhat.com>:
>> >> >>> >> >> >> >>> >
Could you do the following on one of the nodes where
>> >> >>> >> >> >> >>> > you
>> >> >>> >> >> >> >>> > are
>> >> >>> >> >> >> >>> >
observing
>> >> >>> >> >> >> >>> > high
>> >> >>> >> >> >> >>> > CPU
usage and attach that file to this thread? We
>> >> >>> >> >> >> >>> > can
>> >> >>> >> >> >> >>> > find
>> >> >>> >> >> >> >>> > what
>> >> >>> >> >> >> >>> >
threads/processes are leading to high usage. Do this
>> >> >>> >> >> >> >>> > for
>> >> >>> >> >> >> >>> > say
>> >> >>> >> >> >> >>> > 10
>> >> >>> >> >> >> >>> >
minutes
>> >> >>> >> >> >> >>> > when
>> >> >>> >> >> >> >>> > you
see the ~100% CPU.
>> >> >>> >> >> >> >>> >
>> >> >>> >> >> >> >>> > top
-bHd 5 > /tmp/top.${HOSTNAME}.txt
>> >> >>> >> >> >> >>> >
>> >> >>> >> >> >> >>> > On
Wed, Aug 15, 2018 at 2:37 PM Hu Bert
>> >> >>> >> >> >> >>> >
<revirii at googlemail.com>
>> >> >>> >> >> >> >>> >
wrote:
>> >> >>> >> >> >> >>> >>
>> >> >>> >> >> >> >>> >>
Hello again :-)
>> >> >>> >> >> >> >>> >>
>> >> >>> >> >> >> >>> >>
The self heal must have finished as there are no
>> >> >>> >> >> >> >>> >>
log
>> >> >>> >> >> >> >>> >>
entries
>> >> >>> >> >> >> >>> >>
in
>> >> >>> >> >> >> >>> >>
glustershd.log files anymore. According to munin
>> >> >>> >> >> >> >>> >>
disk
>> >> >>> >> >> >> >>> >>
latency
>> >> >>> >> >> >> >>> >>
(average
>> >> >>> >> >> >> >>> >>
io wait) has gone down to 100 ms, and disk
>> >> >>> >> >> >> >>> >>
utilization
>> >> >>> >> >> >> >>> >>
has
>> >> >>> >> >> >> >>> >>
gone
>> >> >>> >> >> >> >>> >>
down
>> >> >>> >> >> >> >>> >>
to ~60% - both on all servers and hard disks.
>> >> >>> >> >> >> >>> >>
>> >> >>> >> >> >> >>> >>
But now system load on 2 servers (which were in the
>> >> >>> >> >> >> >>> >>
good
>> >> >>> >> >> >> >>> >>
state)
>> >> >>> >> >> >> >>> >>
fluctuates between 60 and 100; the server with the
>> >> >>> >> >> >> >>> >>
formerly
>> >> >>> >> >> >> >>> >>
failed
>> >> >>> >> >> >> >>> >>
disk has a load of 20-30.I've uploaded some munin
>> >> >>> >> >> >> >>> >>
graphics of
>> >> >>> >> >> >> >>> >>
the
>> >> >>> >> >> >> >>> >>
cpu
>> >> >>> >> >> >> >>> >>
usage:
>> >> >>> >> >> >> >>> >>
>> >> >>> >> >> >> >>> >>
https://abload.de/img/gluster11_cpu31d3a.png
>> >> >>> >> >> >> >>> >>
https://abload.de/img/gluster12_cpu8sem7.png
>> >> >>> >> >> >> >>> >>
https://abload.de/img/gluster13_cpud7eni.png
>> >> >>> >> >> >> >>> >>
>> >> >>> >> >> >> >>> >>
This can't be normal. 2 of the servers under heavy
>> >> >>> >> >> >> >>> >>
load
>> >> >>> >> >> >> >>> >>
and
>> >> >>> >> >> >> >>> >>
one
>> >> >>> >> >> >> >>> >>
not
>> >> >>> >> >> >> >>> >>
that much. Does anyone have an explanation of this
>> >> >>> >> >> >> >>> >>
strange
>> >> >>> >> >> >> >>> >>
behaviour?
>> >> >>> >> >> >> >>> >>
>> >> >>> >> >> >> >>> >>
>> >> >>> >> >> >> >>> >>
Thx :-)
>> >> >>> >> >> >> >>> >>
>> >> >>> >> >> >> >>> >>
2018-08-14 9:37 GMT+02:00 Hu Bert
>> >> >>> >> >> >> >>> >>
<revirii at googlemail.com>:
>> >> >>> >> >> >> >>> >>
> Hi there,
>> >> >>> >> >> >> >>> >>
>
>> >> >>> >> >> >> >>> >>
> well, it seems the heal has finally finished.
>> >> >>> >> >> >> >>> >>
> Couldn't
>> >> >>> >> >> >> >>> >>
> see/find
>> >> >>> >> >> >> >>> >>
> any
>> >> >>> >> >> >> >>> >>
> related log message; is there such a message in a
>> >> >>> >> >> >> >>> >>
> specific
>> >> >>> >> >> >> >>> >>
> log
>> >> >>> >> >> >> >>> >>
> file?
>> >> >>> >> >> >> >>> >>
>
>> >> >>> >> >> >> >>> >>
> But i see the same behaviour when the last heal
>> >> >>> >> >> >> >>> >>
> finished:
>> >> >>> >> >> >> >>> >>
> all
>> >> >>> >> >> >> >>> >>
> CPU
>> >> >>> >> >> >> >>> >>
> cores are consumed by brick processes; not only
>> >> >>> >> >> >> >>> >>
> by
>> >> >>> >> >> >> >>> >>
> the
>> >> >>> >> >> >> >>> >>
> formerly
>> >> >>> >> >> >> >>> >>
> failed
>> >> >>> >> >> >> >>> >>
> bricksdd1, but by all 4 brick processes (and
>> >> >>> >> >> >> >>> >>
> their
>> >> >>> >> >> >> >>> >>
> threads).
>> >> >>> >> >> >> >>> >>
> Load
>> >> >>> >> >> >> >>> >>
> goes
>> >> >>> >> >> >> >>> >>
> up to > 100 on the 2 servers with the not-failed
>> >> >>> >> >> >> >>> >>
> brick,
>> >> >>> >> >> >> >>> >>
> and
>> >> >>> >> >> >> >>> >>
> glustershd.log gets filled with a lot of entries.
>> >> >>> >> >> >> >>> >>
> Load
>> >> >>> >> >> >> >>> >>
> on
>> >> >>> >> >> >> >>> >>
> the
>> >> >>> >> >> >> >>> >>
> server
>> >> >>> >> >> >> >>> >>
> with the then failed brick not that high, but
>> >> >>> >> >> >> >>> >>
> still
>> >> >>> >> >> >> >>> >>
> ~60.
>> >> >>> >> >> >> >>> >>
>
>> >> >>> >> >> >> >>> >>
> Is this behaviour normal? Is there some post-heal
>> >> >>> >> >> >> >>> >>
> after
>> >> >>> >> >> >> >>> >>
> a
>> >> >>> >> >> >> >>> >>
> heal
>> >> >>> >> >> >> >>> >>
> has
>> >> >>> >> >> >> >>> >>
> finished?
>> >> >>> >> >> >> >>> >>
>
>> >> >>> >> >> >> >>> >>
> thx in advance :-)
>> >> >>> >> >> >> >>> >
>> >> >>> >> >> >> >>> >
>> >> >>> >> >> >> >>> >
>> >> >>> >> >> >> >>> > --
>> >> >>> >> >> >> >>> >
Pranith
>> >> >>> >> >> >> >>
>> >> >>> >> >> >> >>
>> >> >>> >> >> >> >>
>> >> >>> >> >> >> >> --
>> >> >>> >> >> >> >> Pranith
>> >> >>> >> >> >> >
>> >> >>> >> >> >> >
>> >> >>> >> >> >> >
>> >> >>> >> >> >> > --
>> >> >>> >> >> >> > Pranith
>> >> >>> >> >> >
>> >> >>> >> >> >
>> >> >>> >> >> >
>> >> >>> >> >> > --
>> >> >>> >> >> > Pranith
>> >> >>> >> >
>> >> >>> >> >
>> >> >>> >> >
>> >> >>> >> > --
>> >> >>> >> > Pranith
>> >> >>> >
>> >> >>> >
>> >> >>> >
>> >> >>> > --
>> >> >>> > Pranith
>> >> >>
>> >> >>
>> >> >>
>> >> >> --
>> >> >> Pranith
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> > Pranith
>> >
>> >
>> >
>> > --
>> > Pranith
>
>
>
> --
> Pranith
Hu Bert
2018-Aug-28 06:54 UTC
[Gluster-users] Gluter 3.12.12: performance during heal and in general
a little update after about 2 hours of uptime: still/again high cpu usage by one brick processes. server load >30. gluster11: high cpu; brick /gluster/bricksdd1/; no hdd exchange so far gluster12: normal cpu; brick /gluster/bricksdd1_new/; hdd change /dev/sdd gluster13: high cpu; brick /gluster/bricksdd1_new/; hdd change /dev/sdd The process for brick bricksdd1 consumes almost all 12 cores. Interestingly there are more threads for the bricksdd1 process than for the other bricks. Counted with "ps huH p <PID_OF_U_PROCESS> | wc -l" gluster11: bricksda1 59 threads, bricksdb1 65 threads, bricksdc1 68 threads, bricksdd1 85 threads gluster12: bricksda1 65 threads, bricksdb1 60 threads, bricksdc1 61 threads, bricksdd1_new 58 threads gluster13: bricksda1 61 threads, bricksdb1 60 threads, bricksdc1 61 threads, bricksdd1_new 82 threads Don't know if that could be relevant. 2018-08-28 7:04 GMT+02:00 Hu Bert <revirii at googlemail.com>:> Good Morning, > > today i update + rebooted all gluster servers, kernel update to > 4.9.0-8 and gluster to 3.12.13. Reboots went fine, but on one of the > gluster servers (gluster13) one of the bricks did come up at the > beginning but then lost connection. > > OK: > > Status of volume: shared > Gluster process TCP Port RDMA Port Online Pid > ------------------------------------------------------------------------------ > [...] > Brick gluster11:/gluster/bricksdd1/shared 49155 0 > Y 2506 > Brick gluster12:/gluster/bricksdd1_new/shared 49155 0 > Y 2097 > Brick gluster13:/gluster/bricksdd1_new/shared 49155 0 > Y 2136 > > Lost connection: > > Brick gluster11:/gluster/bricksdd1/shared 49155 0 > Y 2506 > Brick gluster12:/gluster/bricksdd1_new/shared 49155 0 > Y 2097 > Brick gluster13:/gluster/bricksdd1_new/shared N/A N/A > N N/A > > gluster volume heal shared info: > Brick gluster13:/gluster/bricksdd1_new/shared > Status: Transport endpoint is not connected > Number of entries: - > > reboot was at 06:15:39; brick then worked for a short period, but then > somehow disconnected. > > from gluster13:/var/log/glusterfs/glusterd.log: > > [2018-08-28 04:27:36.944608] I [MSGID: 106005] > [glusterd-handler.c:6071:__glusterd_brick_rpc_notify] 0-management: > Brick gluster13:/gluster/bricksdd1_new/shared has disconnected from > glusterd. > [2018-08-28 04:28:57.869666] I > [glusterd-utils.c:6056:glusterd_brick_start] 0-management: starting a > fresh brick process for brick /gluster/bricksdd1_new/shared > [2018-08-28 04:35:20.732666] I [MSGID: 106143] > [glusterd-pmap.c:295:pmap_registry_bind] 0-pmap: adding brick > /gluster/bricksdd1_new/shared on port 49157 > > After 'gluster volume start shared force' (then with new port 49157): > > Brick gluster11:/gluster/bricksdd1/shared 49155 0 > Y 2506 > Brick gluster12:/gluster/bricksdd1_new/shared 49155 0 > Y 2097 > Brick gluster13:/gluster/bricksdd1_new/shared 49157 0 > Y 3994 > > from /var/log/syslog: > > Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: pending frames: > Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: frame : > type(0) op(0) > Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: frame : > type(0) op(0) > Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: > patchset: git://git.gluster.org/glusterfs.git > Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: signal > received: 11 > Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: time of crash: > Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: > 2018-08-28 04:27:36 > Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: > configuration details: > Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: argp 1 > Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: backtrace 1 > Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: dlfcn 1 > Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: libpthread 1 > Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: llistxattr 1 > Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: setfsid 1 > Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: spinlock 1 > Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: epoll.h 1 > Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: xattr.h 1 > Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: st_atim.tv_nsec 1 > Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: > package-string: glusterfs 3.12.13 > Aug 28 06:27:36 gluster13 gluster-bricksdd1_new-shared[2136]: --------- > > There are some errors+warnings in the shared.log (volume logfile), but > no error message telling me why > gluster13:/gluster/bricksdd1_new/shared has disconnected. > > Well... at the moment load is ok, all 3 servers at about 15 (but i > think it will go up when more users will cause more traffic -> more > work on servers), 'gluster volume heal shared info' shows no entries, > status: > > Status of volume: shared > Gluster process TCP Port RDMA Port Online Pid > ------------------------------------------------------------------------------ > Brick gluster11:/gluster/bricksda1/shared 49152 0 Y 2482 > Brick gluster12:/gluster/bricksda1/shared 49152 0 Y 2088 > Brick gluster13:/gluster/bricksda1/shared 49152 0 Y 2115 > Brick gluster11:/gluster/bricksdb1/shared 49153 0 Y 2489 > Brick gluster12:/gluster/bricksdb1/shared 49153 0 Y 2094 > Brick gluster13:/gluster/bricksdb1/shared 49153 0 Y 2116 > Brick gluster11:/gluster/bricksdc1/shared 49154 0 Y 2497 > Brick gluster12:/gluster/bricksdc1/shared 49154 0 Y 2095 > Brick gluster13:/gluster/bricksdc1/shared 49154 0 Y 2127 > Brick gluster11:/gluster/bricksdd1/shared 49155 0 Y 2506 > Brick gluster12:/gluster/bricksdd1_new/shared 49155 0 > Y 2097 > Brick gluster13:/gluster/bricksdd1_new/shared 49157 0 > Y 3994 > Self-heal Daemon on localhost N/A N/A Y 4868 > Self-heal Daemon on gluster12 N/A N/A Y 3813 > Self-heal Daemon on gluster11 N/A N/A Y 5762 > > Task Status of Volume shared > ------------------------------------------------------------------------------ > There are no active volume tasks > > Very strange. Thanks for reading if you've reached this line :-) > > 2018-08-23 13:58 GMT+02:00 Pranith Kumar Karampuri <pkarampu at redhat.com>: >> >> >> On Wed, Aug 22, 2018 at 12:01 PM Hu Bert <revirii at googlemail.com> wrote: >>> >>> Just an addition: in general there are no log messages in >>> /var/log/glusterfs/ (if you don't all 'gluster volume ...'), but on >>> the node with the lowest load i see in cli.log.1: >>> >>> [2018-08-22 06:20:43.291055] I [socket.c:2474:socket_event_handler] >>> 0-transport: EPOLLERR - disconnecting now >>> [2018-08-22 06:20:46.291327] I [socket.c:2474:socket_event_handler] >>> 0-transport: EPOLLERR - disconnecting now >>> [2018-08-22 06:20:49.291575] I [socket.c:2474:socket_event_handler] >>> 0-transport: EPOLLERR - disconnecting now >>> >>> every 3 seconds. Looks like this bug: >>> https://bugzilla.redhat.com/show_bug.cgi?id=1484885 - but that shoud >>> have been fixed in the 3.12.x release, and network is fine. >> >> >> +Milind Changire >> >>> >>> In cli.log there are only these entries: >>> >>> [2018-08-22 06:19:23.428520] I [cli.c:765:main] 0-cli: Started running >>> gluster with version 3.12.12 >>> [2018-08-22 06:19:23.800895] I [MSGID: 101190] >>> [event-epoll.c:613:event_dispatch_epoll_worker] 0-epoll: Started >>> thread with index 1 >>> [2018-08-22 06:19:23.800978] I [socket.c:2474:socket_event_handler] >>> 0-transport: EPOLLERR - disconnecting now >>> [2018-08-22 06:19:23.809366] I [input.c:31:cli_batch] 0-: Exiting with: 0 >>> >>> Just wondered if this could related anyhow. >>> >>> 2018-08-21 8:17 GMT+02:00 Pranith Kumar Karampuri <pkarampu at redhat.com>: >>> > >>> > >>> > On Tue, Aug 21, 2018 at 11:40 AM Hu Bert <revirii at googlemail.com> wrote: >>> >> >>> >> Good morning :-) >>> >> >>> >> gluster11: >>> >> ls -l /gluster/bricksdd1/shared/.glusterfs/indices/xattrop/ >>> >> total 0 >>> >> ---------- 1 root root 0 Aug 14 06:14 >>> >> xattrop-006b65d8-9e81-4886-b380-89168ea079bd >>> >> >>> >> gluster12: >>> >> ls -l /gluster/bricksdd1_new/shared/.glusterfs/indices/xattrop/ >>> >> total 0 >>> >> ---------- 1 root root 0 Jul 17 11:24 >>> >> xattrop-c7c6f765-ce17-4361-95fb-2fd7f31c7b82 >>> >> >>> >> gluster13: >>> >> ls -l /gluster/bricksdd1_new/shared/.glusterfs/indices/xattrop/ >>> >> total 0 >>> >> ---------- 1 root root 0 Aug 16 07:54 >>> >> xattrop-16b696a0-4214-4999-b277-0917c76c983e >>> >> >>> >> >>> >> And here's the output of 'perf ...' which ran almost a minute - file >>> >> grew pretty fast to a size of 17 GB and system load went up heavily. >>> >> Had to wait a while until load dropped :-) >>> >> >>> >> fyi - load at the moment: >>> >> load gluster11: ~90 >>> >> load gluster12: ~10 >>> >> load gluster13: ~50 >>> >> >>> >> perf record --call-graph=dwarf -p 7897 -o >>> >> /tmp/perf.gluster11.bricksdd1.out >>> >> [ perf record: Woken up 9837 times to write data ] >>> >> Warning: >>> >> Processed 2137218 events and lost 33446 chunks! >>> >> >>> >> Check IO/CPU overload! >>> >> >>> >> [ perf record: Captured and wrote 16576.374 MB >>> >> /tmp/perf.gluster11.bricksdd1.out (2047760 samples) ] >>> >> >>> >> Here's an excerpt. >>> >> >>> >> + 1.93% 0.00% glusteriotwr0 [unknown] [k] >>> >> 0xffffffffffffffff >>> >> + 1.89% 0.00% glusteriotwr28 [unknown] [k] >>> >> 0xffffffffffffffff >>> >> + 1.86% 0.00% glusteriotwr15 [unknown] [k] >>> >> 0xffffffffffffffff >>> >> + 1.85% 0.00% glusteriotwr63 [unknown] [k] >>> >> 0xffffffffffffffff >>> >> + 1.83% 0.01% glusteriotwr0 [kernel.kallsyms] [k] >>> >> entry_SYSCALL_64_after_swapgs >>> >> + 1.82% 0.00% glusteriotwr38 [unknown] [k] >>> >> 0xffffffffffffffff >>> >> + 1.82% 0.01% glusteriotwr28 [kernel.kallsyms] [k] >>> >> entry_SYSCALL_64_after_swapgs >>> >> + 1.82% 0.00% glusteriotwr0 [kernel.kallsyms] [k] >>> >> do_syscall_64 >>> >> + 1.81% 0.00% glusteriotwr28 [kernel.kallsyms] [k] >>> >> do_syscall_64 >>> >> + 1.81% 0.00% glusteriotwr15 [kernel.kallsyms] [k] >>> >> entry_SYSCALL_64_after_swapgs >>> >> + 1.81% 0.00% glusteriotwr36 [unknown] [k] >>> >> 0xffffffffffffffff >>> >> + 1.80% 0.00% glusteriotwr15 [kernel.kallsyms] [k] >>> >> do_syscall_64 >>> >> + 1.78% 0.01% glusteriotwr63 [kernel.kallsyms] [k] >>> >> entry_SYSCALL_64_after_swapgs >>> >> + 1.77% 0.00% glusteriotwr63 [kernel.kallsyms] [k] >>> >> do_syscall_64 >>> >> + 1.75% 0.01% glusteriotwr38 [kernel.kallsyms] [k] >>> >> entry_SYSCALL_64_after_swapgs >>> >> + 1.75% 0.00% glusteriotwr38 [kernel.kallsyms] [k] >>> >> do_syscall_64 >>> >> + 1.74% 0.00% glusteriotwr17 [unknown] [k] >>> >> 0xffffffffffffffff >>> >> + 1.74% 0.00% glusteriotwr44 [unknown] [k] >>> >> 0xffffffffffffffff >>> >> + 1.73% 0.00% glusteriotwr6 [unknown] [k] >>> >> 0xffffffffffffffff >>> >> + 1.73% 0.00% glusteriotwr37 [unknown] [k] >>> >> 0xffffffffffffffff >>> >> + 1.73% 0.01% glusteriotwr36 [kernel.kallsyms] [k] >>> >> entry_SYSCALL_64_after_swapgs >>> >> + 1.72% 0.00% glusteriotwr34 [unknown] [k] >>> >> 0xffffffffffffffff >>> >> + 1.72% 0.00% glusteriotwr36 [kernel.kallsyms] [k] >>> >> do_syscall_64 >>> >> + 1.71% 0.00% glusteriotwr45 [unknown] [k] >>> >> 0xffffffffffffffff >>> >> + 1.70% 0.00% glusteriotwr7 [unknown] [k] >>> >> 0xffffffffffffffff >>> >> + 1.68% 0.00% glusteriotwr15 [kernel.kallsyms] [k] >>> >> sys_getdents >>> >> + 1.68% 0.00% glusteriotwr15 [kernel.kallsyms] [k] >>> >> filldir >>> >> + 1.68% 0.00% glusteriotwr15 libc-2.24.so [.] >>> >> 0xffff80c60db8ef2b >>> >> + 1.68% 0.00% glusteriotwr15 libc-2.24.so [.] >>> >> readdir64 >>> >> + 1.68% 0.00% glusteriotwr15 index.so [.] >>> >> 0xffff80c6192a1888 >>> >> + 1.68% 0.00% glusteriotwr15 [kernel.kallsyms] [k] >>> >> iterate_dir >>> >> + 1.68% 0.00% glusteriotwr15 [kernel.kallsyms] [k] >>> >> ext4_htree_fill_tree >>> >> + 1.68% 0.00% glusteriotwr15 [kernel.kallsyms] [k] >>> >> ext4_readdir >>> >> >>> >> Or do you want to download the file /tmp/perf.gluster11.bricksdd1.out >>> >> and examine it yourself? If so i could send you a link. >>> > >>> > >>> > Thank you! yes a link would be great. I am not as good with kernel side >>> > of >>> > things. So I will have to show this information to someone else who >>> > knows >>> > these things so expect delay in response. >>> > >>> >> >>> >> >>> >> >>> >> 2018-08-21 7:13 GMT+02:00 Pranith Kumar Karampuri >>> >> <pkarampu at redhat.com>: >>> >> > >>> >> > >>> >> > On Tue, Aug 21, 2018 at 10:13 AM Pranith Kumar Karampuri >>> >> > <pkarampu at redhat.com> wrote: >>> >> >> >>> >> >> >>> >> >> >>> >> >> On Mon, Aug 20, 2018 at 3:20 PM Hu Bert <revirii at googlemail.com> >>> >> >> wrote: >>> >> >>> >>> >> >>> Regarding hardware the machines are identical. Intel Xeon E5-1650 >>> >> >>> v3 >>> >> >>> Hexa-Core; 64 GB DDR4 ECC; Dell PERC H330 8 Port SAS/SATA 12 GBit/s >>> >> >>> RAID Controller; operating system running on a raid1, then 4 disks >>> >> >>> (JBOD) as bricks. >>> >> >>> >>> >> >>> Ok, i ran perf for a few seconds. >>> >> >>> >>> >> >>> ------------------------ >>> >> >>> perf record --call-graph=dwarf -p 7897 -o >>> >> >>> /tmp/perf.gluster11.bricksdd1.out >>> >> >>> ^C[ perf record: Woken up 378 times to write data ] >>> >> >>> Warning: >>> >> >>> Processed 83690 events and lost 96 chunks! >>> >> >>> >>> >> >>> Check IO/CPU overload! >>> >> >>> >>> >> >>> [ perf record: Captured and wrote 423.087 MB >>> >> >>> /tmp/perf.gluster11.bricksdd1.out (51744 samples) ] >>> >> >>> ------------------------ >>> >> >>> >>> >> >>> I copied a couple of lines: >>> >> >>> >>> >> >>> + 8.10% 0.00% glusteriotwr22 [unknown] [k] >>> >> >>> 0xffffffffffffffff >>> >> >>> + 8.10% 0.00% glusteriotwr22 [kernel.kallsyms] [k] >>> >> >>> iterate_dir >>> >> >>> + 8.10% 0.00% glusteriotwr22 [kernel.kallsyms] [k] >>> >> >>> sys_getdents >>> >> >>> + 8.10% 0.00% glusteriotwr22 [kernel.kallsyms] [k] >>> >> >>> filldir >>> >> >>> + 8.10% 0.00% glusteriotwr22 [kernel.kallsyms] [k] >>> >> >>> do_syscall_64 >>> >> >>> + 8.10% 0.00% glusteriotwr22 [kernel.kallsyms] [k] >>> >> >>> entry_SYSCALL_64_after_swapgs >>> >> >>> + 8.10% 0.00% glusteriotwr22 libc-2.24.so [.] >>> >> >>> 0xffff80c60db8ef2b >>> >> >>> + 8.10% 0.00% glusteriotwr22 libc-2.24.so [.] >>> >> >>> readdir64 >>> >> >>> + 8.10% 0.00% glusteriotwr22 index.so [.] >>> >> >>> 0xffff80c6192a1888 >>> >> >>> + 8.10% 0.04% glusteriotwr22 [kernel.kallsyms] [k] >>> >> >>> ext4_htree_fill_tree >>> >> >>> + 8.10% 0.00% glusteriotwr22 [kernel.kallsyms] [k] >>> >> >>> ext4_readdir >>> >> >>> + 7.95% 0.12% glusteriotwr22 [kernel.kallsyms] [k] >>> >> >>> htree_dirblock_to_tree >>> >> >>> + 5.78% 0.96% glusteriotwr22 [kernel.kallsyms] [k] >>> >> >>> __ext4_read_dirblock >>> >> >>> + 4.80% 0.02% glusteriotwr22 [kernel.kallsyms] [k] >>> >> >>> ext4_bread >>> >> >>> + 4.78% 0.04% glusteriotwr22 [kernel.kallsyms] [k] >>> >> >>> ext4_getblk >>> >> >>> + 4.72% 0.02% glusteriotwr22 [kernel.kallsyms] [k] >>> >> >>> __getblk_gfp >>> >> >>> + 4.57% 0.00% glusteriotwr3 [unknown] [k] >>> >> >>> 0xffffffffffffffff >>> >> >>> + 4.55% 0.00% glusteriotwr3 [kernel.kallsyms] [k] >>> >> >>> do_syscall_64 >>> >> >>> >>> >> >>> Do you need different or additional information? >>> >> >> >>> >> >> >>> >> >> This looks like there are lot of readdirs going on which is >>> >> >> different >>> >> >> from >>> >> >> what we observed earlier, how many seconds did you do perf record >>> >> >> for? >>> >> >> Will >>> >> >> it be possible for you to do this for some more time? may be a >>> >> >> minute? >>> >> >> Just >>> >> >> want to be sure that the data actually represents what we are >>> >> >> observing. >>> >> > >>> >> > >>> >> > I found one code path which on lookup does readdirs. Could you give >>> >> > me >>> >> > the >>> >> > output of ls -l <brick-path>/.glusterfs/indices/xattrop on all the >>> >> > three >>> >> > bricks? It can probably give a correlation to see if it is indeed the >>> >> > same >>> >> > issue or not. >>> >> > >>> >> >> >>> >> >> >>> >> >>> >>> >> >>> >>> >> >>> >>> >> >>> 2018-08-20 11:20 GMT+02:00 Pranith Kumar Karampuri >>> >> >>> <pkarampu at redhat.com>: >>> >> >>> > Even the brick which doesn't have high CPU seems to have same >>> >> >>> > number >>> >> >>> > of >>> >> >>> > lookups, so that's not it. >>> >> >>> > Is there any difference at all between the machines which have >>> >> >>> > high >>> >> >>> > CPU >>> >> >>> > vs >>> >> >>> > low CPU? >>> >> >>> > I think the only other thing I would do is to install perf tools >>> >> >>> > and >>> >> >>> > try to >>> >> >>> > figure out the call-graph which is leading to so much CPU >>> >> >>> > >>> >> >>> > This affects performance of the brick I think, so you may have to >>> >> >>> > do >>> >> >>> > it >>> >> >>> > quickly and for less time. >>> >> >>> > >>> >> >>> > perf record --call-graph=dwarf -p <brick-pid> -o >>> >> >>> > </path/to/output> >>> >> >>> > then >>> >> >>> > perf report -i </path/to/output/given/in/the/previous/command> >>> >> >>> > >>> >> >>> > >>> >> >>> > On Mon, Aug 20, 2018 at 2:40 PM Hu Bert <revirii at googlemail.com> >>> >> >>> > wrote: >>> >> >>> >> >>> >> >>> >> gluster volume heal shared info | grep -i number >>> >> >>> >> Number of entries: 0 >>> >> >>> >> Number of entries: 0 >>> >> >>> >> Number of entries: 0 >>> >> >>> >> Number of entries: 0 >>> >> >>> >> Number of entries: 0 >>> >> >>> >> Number of entries: 0 >>> >> >>> >> Number of entries: 0 >>> >> >>> >> Number of entries: 0 >>> >> >>> >> Number of entries: 0 >>> >> >>> >> Number of entries: 0 >>> >> >>> >> Number of entries: 0 >>> >> >>> >> Number of entries: 0 >>> >> >>> >> >>> >> >>> >> Looks good to me. >>> >> >>> >> >>> >> >>> >> >>> >> >>> >> 2018-08-20 10:51 GMT+02:00 Pranith Kumar Karampuri >>> >> >>> >> <pkarampu at redhat.com>: >>> >> >>> >> > There are a lot of Lookup operations in the system. But I am >>> >> >>> >> > not >>> >> >>> >> > able to >>> >> >>> >> > find why. Could you check the output of >>> >> >>> >> > >>> >> >>> >> > # gluster volume heal <volname> info | grep -i number >>> >> >>> >> > >>> >> >>> >> > it should print all zeros. >>> >> >>> >> > >>> >> >>> >> > On Fri, Aug 17, 2018 at 1:49 PM Hu Bert >>> >> >>> >> > <revirii at googlemail.com> >>> >> >>> >> > wrote: >>> >> >>> >> >> >>> >> >>> >> >> I don't know what you exactly mean with workload, but the >>> >> >>> >> >> main >>> >> >>> >> >> function of the volume is storing (incl. writing, reading) >>> >> >>> >> >> images >>> >> >>> >> >> (from hundreds of bytes up to 30 MBs, overall ~7TB). The work >>> >> >>> >> >> is >>> >> >>> >> >> done >>> >> >>> >> >> by apache tomcat servers writing to / reading from the >>> >> >>> >> >> volume. >>> >> >>> >> >> Besides >>> >> >>> >> >> images there are some text files and binaries that are stored >>> >> >>> >> >> on >>> >> >>> >> >> the >>> >> >>> >> >> volume and get updated regularly (every x hours); we'll try >>> >> >>> >> >> to >>> >> >>> >> >> migrate >>> >> >>> >> >> the latter ones to local storage asap. >>> >> >>> >> >> >>> >> >>> >> >> Interestingly it's only one process (and its threads) of the >>> >> >>> >> >> same >>> >> >>> >> >> brick on 2 of the gluster servers that consumes the CPU. >>> >> >>> >> >> >>> >> >>> >> >> gluster11: bricksdd1; not healed; full CPU >>> >> >>> >> >> gluster12: bricksdd1; got healed; normal CPU >>> >> >>> >> >> gluster13: bricksdd1; got healed; full CPU >>> >> >>> >> >> >>> >> >>> >> >> Besides: performance during heal (e.g. gluster12, bricksdd1) >>> >> >>> >> >> was >>> >> >>> >> >> way >>> >> >>> >> >> better than it is now. I've attached 2 pngs showing the >>> >> >>> >> >> differing >>> >> >>> >> >> cpu >>> >> >>> >> >> usage of last week before/after heal. >>> >> >>> >> >> >>> >> >>> >> >> 2018-08-17 9:30 GMT+02:00 Pranith Kumar Karampuri >>> >> >>> >> >> <pkarampu at redhat.com>: >>> >> >>> >> >> > There seems to be too many lookup operations compared to >>> >> >>> >> >> > any >>> >> >>> >> >> > other >>> >> >>> >> >> > operations. What is the workload on the volume? >>> >> >>> >> >> > >>> >> >>> >> >> > On Fri, Aug 17, 2018 at 12:47 PM Hu Bert >>> >> >>> >> >> > <revirii at googlemail.com> >>> >> >>> >> >> > wrote: >>> >> >>> >> >> >> >>> >> >>> >> >> >> i hope i did get it right. >>> >> >>> >> >> >> >>> >> >>> >> >> >> gluster volume profile shared start >>> >> >>> >> >> >> wait 10 minutes >>> >> >>> >> >> >> gluster volume profile shared info >>> >> >>> >> >> >> gluster volume profile shared stop >>> >> >>> >> >> >> >>> >> >>> >> >> >> If that's ok, i've attached the output of the info >>> >> >>> >> >> >> command. >>> >> >>> >> >> >> >>> >> >>> >> >> >> >>> >> >>> >> >> >> 2018-08-17 8:31 GMT+02:00 Pranith Kumar Karampuri >>> >> >>> >> >> >> <pkarampu at redhat.com>: >>> >> >>> >> >> >> > Please do volume profile also for around 10 minutes when >>> >> >>> >> >> >> > CPU% >>> >> >>> >> >> >> > is >>> >> >>> >> >> >> > high. >>> >> >>> >> >> >> > >>> >> >>> >> >> >> > On Fri, Aug 17, 2018 at 11:56 AM Pranith Kumar Karampuri >>> >> >>> >> >> >> > <pkarampu at redhat.com> wrote: >>> >> >>> >> >> >> >> >>> >> >>> >> >> >> >> As per the output, all io-threads are using a lot of >>> >> >>> >> >> >> >> CPU. >>> >> >>> >> >> >> >> It >>> >> >>> >> >> >> >> is >>> >> >>> >> >> >> >> better >>> >> >>> >> >> >> >> to >>> >> >>> >> >> >> >> check what the volume profile is to see what is leading >>> >> >>> >> >> >> >> to >>> >> >>> >> >> >> >> so >>> >> >>> >> >> >> >> much >>> >> >>> >> >> >> >> work >>> >> >>> >> >> >> >> for >>> >> >>> >> >> >> >> io-threads. Please follow the documentation at >>> >> >>> >> >> >> >> >>> >> >>> >> >> >> >> >>> >> >>> >> >> >> >> >>> >> >>> >> >> >> >> >>> >> >>> >> >> >> >> >>> >> >>> >> >> >> >> >>> >> >>> >> >> >> >> https://gluster.readthedocs.io/en/latest/Administrator%20Guide/Monitoring%20Workload/ >>> >> >>> >> >> >> >> section: " >>> >> >>> >> >> >> >> >>> >> >>> >> >> >> >> Running GlusterFS Volume Profile Command" >>> >> >>> >> >> >> >> >>> >> >>> >> >> >> >> and attach output of "gluster volume profile info", >>> >> >>> >> >> >> >> >>> >> >>> >> >> >> >> On Fri, Aug 17, 2018 at 11:24 AM Hu Bert >>> >> >>> >> >> >> >> <revirii at googlemail.com> >>> >> >>> >> >> >> >> wrote: >>> >> >>> >> >> >> >>> >>> >> >>> >> >> >> >>> Good morning, >>> >> >>> >> >> >> >>> >>> >> >>> >> >> >> >>> i ran the command during 100% CPU usage and attached >>> >> >>> >> >> >> >>> the >>> >> >>> >> >> >> >>> file. >>> >> >>> >> >> >> >>> Hopefully it helps. >>> >> >>> >> >> >> >>> >>> >> >>> >> >> >> >>> 2018-08-17 7:33 GMT+02:00 Pranith Kumar Karampuri >>> >> >>> >> >> >> >>> <pkarampu at redhat.com>: >>> >> >>> >> >> >> >>> > Could you do the following on one of the nodes where >>> >> >>> >> >> >> >>> > you >>> >> >>> >> >> >> >>> > are >>> >> >>> >> >> >> >>> > observing >>> >> >>> >> >> >> >>> > high >>> >> >>> >> >> >> >>> > CPU usage and attach that file to this thread? We >>> >> >>> >> >> >> >>> > can >>> >> >>> >> >> >> >>> > find >>> >> >>> >> >> >> >>> > what >>> >> >>> >> >> >> >>> > threads/processes are leading to high usage. Do this >>> >> >>> >> >> >> >>> > for >>> >> >>> >> >> >> >>> > say >>> >> >>> >> >> >> >>> > 10 >>> >> >>> >> >> >> >>> > minutes >>> >> >>> >> >> >> >>> > when >>> >> >>> >> >> >> >>> > you see the ~100% CPU. >>> >> >>> >> >> >> >>> > >>> >> >>> >> >> >> >>> > top -bHd 5 > /tmp/top.${HOSTNAME}.txt >>> >> >>> >> >> >> >>> > >>> >> >>> >> >> >> >>> > On Wed, Aug 15, 2018 at 2:37 PM Hu Bert >>> >> >>> >> >> >> >>> > <revirii at googlemail.com> >>> >> >>> >> >> >> >>> > wrote: >>> >> >>> >> >> >> >>> >> >>> >> >>> >> >> >> >>> >> Hello again :-) >>> >> >>> >> >> >> >>> >> >>> >> >>> >> >> >> >>> >> The self heal must have finished as there are no >>> >> >>> >> >> >> >>> >> log >>> >> >>> >> >> >> >>> >> entries >>> >> >>> >> >> >> >>> >> in >>> >> >>> >> >> >> >>> >> glustershd.log files anymore. According to munin >>> >> >>> >> >> >> >>> >> disk >>> >> >>> >> >> >> >>> >> latency >>> >> >>> >> >> >> >>> >> (average >>> >> >>> >> >> >> >>> >> io wait) has gone down to 100 ms, and disk >>> >> >>> >> >> >> >>> >> utilization >>> >> >>> >> >> >> >>> >> has >>> >> >>> >> >> >> >>> >> gone >>> >> >>> >> >> >> >>> >> down >>> >> >>> >> >> >> >>> >> to ~60% - both on all servers and hard disks. >>> >> >>> >> >> >> >>> >> >>> >> >>> >> >> >> >>> >> But now system load on 2 servers (which were in the >>> >> >>> >> >> >> >>> >> good >>> >> >>> >> >> >> >>> >> state) >>> >> >>> >> >> >> >>> >> fluctuates between 60 and 100; the server with the >>> >> >>> >> >> >> >>> >> formerly >>> >> >>> >> >> >> >>> >> failed >>> >> >>> >> >> >> >>> >> disk has a load of 20-30.I've uploaded some munin >>> >> >>> >> >> >> >>> >> graphics of >>> >> >>> >> >> >> >>> >> the >>> >> >>> >> >> >> >>> >> cpu >>> >> >>> >> >> >> >>> >> usage: >>> >> >>> >> >> >> >>> >> >>> >> >>> >> >> >> >>> >> https://abload.de/img/gluster11_cpu31d3a.png >>> >> >>> >> >> >> >>> >> https://abload.de/img/gluster12_cpu8sem7.png >>> >> >>> >> >> >> >>> >> https://abload.de/img/gluster13_cpud7eni.png >>> >> >>> >> >> >> >>> >> >>> >> >>> >> >> >> >>> >> This can't be normal. 2 of the servers under heavy >>> >> >>> >> >> >> >>> >> load >>> >> >>> >> >> >> >>> >> and >>> >> >>> >> >> >> >>> >> one >>> >> >>> >> >> >> >>> >> not >>> >> >>> >> >> >> >>> >> that much. Does anyone have an explanation of this >>> >> >>> >> >> >> >>> >> strange >>> >> >>> >> >> >> >>> >> behaviour? >>> >> >>> >> >> >> >>> >> >>> >> >>> >> >> >> >>> >> >>> >> >>> >> >> >> >>> >> Thx :-) >>> >> >>> >> >> >> >>> >> >>> >> >>> >> >> >> >>> >> 2018-08-14 9:37 GMT+02:00 Hu Bert >>> >> >>> >> >> >> >>> >> <revirii at googlemail.com>: >>> >> >>> >> >> >> >>> >> > Hi there, >>> >> >>> >> >> >> >>> >> > >>> >> >>> >> >> >> >>> >> > well, it seems the heal has finally finished. >>> >> >>> >> >> >> >>> >> > Couldn't >>> >> >>> >> >> >> >>> >> > see/find >>> >> >>> >> >> >> >>> >> > any >>> >> >>> >> >> >> >>> >> > related log message; is there such a message in a >>> >> >>> >> >> >> >>> >> > specific >>> >> >>> >> >> >> >>> >> > log >>> >> >>> >> >> >> >>> >> > file? >>> >> >>> >> >> >> >>> >> > >>> >> >>> >> >> >> >>> >> > But i see the same behaviour when the last heal >>> >> >>> >> >> >> >>> >> > finished: >>> >> >>> >> >> >> >>> >> > all >>> >> >>> >> >> >> >>> >> > CPU >>> >> >>> >> >> >> >>> >> > cores are consumed by brick processes; not only >>> >> >>> >> >> >> >>> >> > by >>> >> >>> >> >> >> >>> >> > the >>> >> >>> >> >> >> >>> >> > formerly >>> >> >>> >> >> >> >>> >> > failed >>> >> >>> >> >> >> >>> >> > bricksdd1, but by all 4 brick processes (and >>> >> >>> >> >> >> >>> >> > their >>> >> >>> >> >> >> >>> >> > threads). >>> >> >>> >> >> >> >>> >> > Load >>> >> >>> >> >> >> >>> >> > goes >>> >> >>> >> >> >> >>> >> > up to > 100 on the 2 servers with the not-failed >>> >> >>> >> >> >> >>> >> > brick, >>> >> >>> >> >> >> >>> >> > and >>> >> >>> >> >> >> >>> >> > glustershd.log gets filled with a lot of entries. >>> >> >>> >> >> >> >>> >> > Load >>> >> >>> >> >> >> >>> >> > on >>> >> >>> >> >> >> >>> >> > the >>> >> >>> >> >> >> >>> >> > server >>> >> >>> >> >> >> >>> >> > with the then failed brick not that high, but >>> >> >>> >> >> >> >>> >> > still >>> >> >>> >> >> >> >>> >> > ~60. >>> >> >>> >> >> >> >>> >> > >>> >> >>> >> >> >> >>> >> > Is this behaviour normal? Is there some post-heal >>> >> >>> >> >> >> >>> >> > after >>> >> >>> >> >> >> >>> >> > a >>> >> >>> >> >> >> >>> >> > heal >>> >> >>> >> >> >> >>> >> > has >>> >> >>> >> >> >> >>> >> > finished? >>> >> >>> >> >> >> >>> >> > >>> >> >>> >> >> >> >>> >> > thx in advance :-) >>> >> >>> >> >> >> >>> > >>> >> >>> >> >> >> >>> > >>> >> >>> >> >> >> >>> > >>> >> >>> >> >> >> >>> > -- >>> >> >>> >> >> >> >>> > Pranith >>> >> >>> >> >> >> >> >>> >> >>> >> >> >> >> >>> >> >>> >> >> >> >> >>> >> >>> >> >> >> >> -- >>> >> >>> >> >> >> >> Pranith >>> >> >>> >> >> >> > >>> >> >>> >> >> >> > >>> >> >>> >> >> >> > >>> >> >>> >> >> >> > -- >>> >> >>> >> >> >> > Pranith >>> >> >>> >> >> > >>> >> >>> >> >> > >>> >> >>> >> >> > >>> >> >>> >> >> > -- >>> >> >>> >> >> > Pranith >>> >> >>> >> > >>> >> >>> >> > >>> >> >>> >> > >>> >> >>> >> > -- >>> >> >>> >> > Pranith >>> >> >>> > >>> >> >>> > >>> >> >>> > >>> >> >>> > -- >>> >> >>> > Pranith >>> >> >> >>> >> >> >>> >> >> >>> >> >> -- >>> >> >> Pranith >>> >> > >>> >> > >>> >> > >>> >> > -- >>> >> > Pranith >>> > >>> > >>> > >>> > -- >>> > Pranith >> >> >> >> -- >> Pranith