Shared resource pool for libgfapi

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Every resource(thread, mem pools) is associated with glusterfs_ctx, hence as the ctxs in the process
grows the resource utilization also grows (most of it being unused). This mostly is an issue with any
libgfapi application: USS, NFS Ganesha, Samba, vdsm, qemu.
It is normal in any of the libgfapi application to have multiple mounts(ctxs) in the same process,
we have seen the number of threads scale from 10s-100s in these applications.

Solution:
======
Have a shared resource pool, threads and mem pools. Since they are shared have a scaling policy that
scales based on the number of ctxs.

Resources that can be shared:
        - Synctask threads
        - Timer threads, circular buf timer threads
        - Sigwaiter thread
        - poller threads, these aren't as straight forward as others. If we want to share the poll threads,
                                    we will have to reuse ports which is a different topic. Hence keeping poller
                                    threads out of this mail as of now.
        - Mem pools: iobuf, dict, stub, frames and others

Once it is tried and tested in libgfapi, it can be extended to other gluster processes.
Initial patch for this is posted @ http://review.gluster.org/11101

Please provide your thoughts on the same.

Thank You,
Poornima
_______________________________________________
Gluster-devel mailing list
Gluster-devel@xxxxxxxxxxx
http://www.gluster.org/mailman/listinfo/gluster-devel

[Index of Archives]     [Gluster Users]     [Ceph Users]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux