Re: How many Pipe per Ceph OSD daemon will keep?

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

 



On Thu, Jun 6, 2013 at 12:25 AM, Chen, Xiaoxi <xiaoxi.chen@xxxxxxxxx> wrote:
>
> Hi,
>          From the code, each pipe (contains a TCP socket) will fork 2 threads, a reader and a writer. We really observe 100+ threads per OSD daemon with 30 instances of rados bench as clients.
>          But this number seems a bit crazy, if I have a 40 disks node, thus I will have 40 OSDs, we plan to have 6 such nodes to serve 120 VMs from OpenStack.  Since a RBD is distributed across all the OSDs, we can expect, for every single OSD daemon, we will have 120 TCP socket, that means 240 threads. Thus for 40 OSDs per node, we will have 9600 threads per node. This thread number seems incredible.
>          Is there any internal mechanism to track and manage the number of pipes ? and another question may be , why we need such a lot threads ? why not epoll?
Yep, right now the OSD maintains two threads per connection. That
hasn't been a problem so far (they're fairly cheap threads) and people
run into other limits much earlier — 40 OSDs/node for instance would
require a lot of compute power anyway.
epoll is a good idea and is something we're aware of, but it hasn't
been necessary yet and would involve mucking around with some fairly
sensitive core code so it hasn't risen to the top of anybody's queue.
-Greg
Software Engineer #42 @ http://inktank.com | http://ceph.com
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux