Em Sunday, 5 de June de 2011, às 12:00:35, todd rme escreveu:
> How big is the kernel buffer, on average?

A few tens of kilobytes. The size itself will vary according to kernel
parameters.

> Is the connection done on a per-file or per-transfer basis?  (i.e. if you
> copy and paste 20 files
> in dolphin, is that one connection or 20?)  If this is a per-file
> thing, and it is in the hundreds of kilobytes to a few megabytes, the
> buffer may never fill.

That depends on the KIO scheduling: whether it will reuse the same slave or
not. For sequential copies, I believe it reuses the slave.

However, I doubt that KIO does pipelining of commands, meaning that it will
drain the buffer of a previous transfer before sending a new command. That
means the new transfer, even if using the same buffer, will undergo the same
non-buffer-full phase until it stabilises. On the average of a multiple-file-
transfer, the limit will be obeyed; but if you look closely, there will be
spikes and periods with no transfer at all.

Also note that there are more buffers into play introducing delays. There's the
ioslave chunk buffer too (which should be small, 4k or so), plus the actual
network socket buffer, which needs to be filled up before the TCP algorithm
begins delaying ACK replies and thus causing the remote to stop sending.

Anything smaller than 256 kB will probably not kick in the rate-limiting at
all. And anything smaller than 2 MB will probably be at a very wrong transfer
rate (10% above the limit or more). [from the point of view of the sender]

--
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
  Senior Product Manager - Nokia, Qt Development Frameworks
      PGP/GPG: 0x6EF45358; fingerprint:
      E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358

Attachment: signature.asc
Description: This is a digitally signed message part.

 
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<

Reply via email to