gionnico wrote: > If I download too many files (or better, I think sources), I get this > warning, the queue frozens and download stops: what are these "descriptors"?
Have you increased the limit for simultaneous downloads? The default is 100 which should be fine. I would not set it higher than maybe ~250 even on a very fast connection because every connection adds overhead. You might have to increase your file descriptor process limit, if you increase this setting too much. A setting of 250 means, it will use up to 500 file descriptors (but only 251 if downloading a single file from 250 sources). If you have 300 leaves and 32 ultrapeers, that's already 832 but there might also be uploads and you need around 10 for logging and save files. The default for banning file descriptors seems to be 25% (which means 256 for a common limit of 1024 file descriptors per process on Linux-based systems), so you might run out of file descriptors. In your shell, run ulimit -n to check your file descriptor limit per process. You could increase it to 2048 to be safe in the above mentioned case. Increasing this resource limit requires root privileges usually. Otherwise don't increase the limit for simultaenous downloads above 100 or decrease the leave connection limit to 100-200 or even much less if you have little upload bandwidth (less than 256 kbit/s). LimeWire has a limit of 32 leaves for example but the more the merrier and efficient, it just needs more CPU and traffic. If you download mostly small files (less than 10 MiB), you could also decrease the limit for downloads per file because it's kind of nonsense to download a 4 MiB file from more than about a dozen sources. Thus you could decrease this limit from 40 to 10-20 to safe descriptors. This also allows you to download more files at a time, instead of one file with (too) many sources. It might especially help if there are many sources that just don't work. > How many are them, what does their number depend on and what is that > percentile (25% @default) for? It's the number of file descriptors used for banning. Banning means the connection will be hold (but ignored) until the remote side disconnects. This is useful to avoid reconnect overhead caused by peers which went haywire or hostile parties. It's not important though most of the time and you could safely decrease it even to zero, same goes for the reserved number of file descriptors. If you have a really low socket or file descriptor limit (less than 512) and no way to increase it, I would certainly do this. The default might be overkill anyway. -- 1000 octets = 1 ko = 1 kilooctet; 1024 octets = 1 Kio = 1 kibioctet 1000^2 octets = 1 Mo = 1 megaoctet; 1024^2 octets = 1 Mio = 1 mebioctet 1000^3 octets = 1 Go = 1 gigaoctet; 1024^3 octets = 1 Gio = 1 gibioctet ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ gtk-gnutella-devel mailing list gtk-gnutella-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gtk-gnutella-devel