<div dir="auto"><div style="font-family:sans-serif;font-size:12.8px" dir="auto">Hi,</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">For each brick, we create atleast 20+ threads, hence in a brick mux use case, where we load multiple bricks in the same process, there will 100s of threads resulting in perf issues, memory usage increase.</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">IO-threads :  Make it global, to the process, and ref count the resource. patch [1], has failures in brick mux regression, likey not related to the patch, need to get it passed.</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">Posix- threads : Janitor, Helper, Fsyncer, instead of using one thread per task, use synctask framework instead. In the future use thread pool in patch [2]. Patches are posted[1], fixing some regression failures.</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">Posix, bitrot aio-thread : This thread cannot be replaced to just use synctask/thread pool as there cannot be a delay in recieving notifications and acting on it. Hence, create a global aio event receiver thread for the process. This is WIP and is not yet posted upstream.</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><div style="font-size:12.8px" dir="auto">Threads in changelog/bitrot xlator Mohit posted a patch where default xlator does not need to start a thread if xlator is not enabled</div><div style="font-size:12.8px" dir="auto"><a href="https://review.gluster.org/#/c/glusterfs/+/21304/" style="text-decoration-line:none;color:rgb(66,133,244)" target="_blank" rel="noreferrer">https://review.gluster.org/#/c/glusterfs/+/21304/</a> (it can save 6 thread per brick in default option)</div></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">Pending: Create a build of these patches, run perf tests with these patches and analyze the same.<br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><div style="font-size:12.8px" dir="auto"><br>[1] <a href="https://review.gluster.org/#/c/glusterfs/+/20761/" style="text-decoration-line:none;color:rgb(66,133,244)">https://review.gluster.org/#/c/glusterfs/+/20761/</a></div><div style="font-size:12.8px" dir="auto">[2] <a href="https://review.gluster.org/#/c/glusterfs/+/20636/" style="text-decoration-line:none;color:rgb(66,133,244)">https://review.gluster.org/#/c/glusterfs/+/20636/</a></div><div style="font-size:12.8px" dir="auto"><br></div></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">Regards,</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">Poornima</div></div>