On 08/10/2010 04:13 PM, Hugo Silva wrote:
> Hello,
>
> I'm backing up a server in Germany from a director in The Netherlands.
> Using bacula, I can't seem to get past ~3000KB/s.
>
> Here's an iperf result:
> [ 3] local [fd-addr] port 16625 connected with [dir-addr] port 5001
> [ ID] Interval Transfer Bandwidth
> [ 3] 0.0-10.1 sec 110 MBytes 91.2 Mbits/sec
>
>
> Googling doesn't seem to bring much more than setting "Maximum Network
> Buffer Size" on the SD and FD.
>
> I did (to 1048576 - same value I ran the iperf tests with), but there
> were no changes; anyway, even with my system default socket buffer sizes
> (256K) I manage to see ~90mbits/s.
>
>
> This leads me to think that perhaps the FD just doesn't have that much
> data to send continuously to the SD, hence the low throughput. In theory
> it could also be the storage that's too slow, but a crude test seems to
> rule this out:
>
> # dd if=/dev/zero of=/bacula/x bs=32k
> ^C24030+0 records in
> 24029+0 records out
> 787382272 bytes transferred in 7.044653 secs (111770197 bytes/sec)
>
> Neither server seems to be CPU starved, either (I'm transfering
> encrypted backups on a TLS connection using compression):
>
> director:
> CPU: 3.4% user, 0.0% nice, 1.2% system, 0.0% interrupt, 95.3% idle
> Mem: 58M Active, 425M Inact, 405M Wired, 176K Cache, 316M Buf, 2084M Free
> Swap: 2048M Total, 2048M Free
>
> PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND
> 11 root 171 ki31 0K 64K CPU1 1 336.1H 100.00% {idle: cpu1}
> 11 root 171 ki31 0K 64K CPU2 2 335.9H 100.00% {idle:
> emcpu2}
> 11 root 171 ki31 0K 64K CPU0 0 335.5H 100.00% {idle: cpu0}
> 11 root 171 ki31 0K 64K RUN 3 336.1H 98.49% {idle: cpu3}
> 46442 bacula 50 0 26796K 7268K select 0 0:01 7.08% {bacula-sd}
> 0 root -68 0 0K 656K - 2 0:36 1.17% {em0 taskq}
>
> FD:
> CPU: 10.9% user, 0.0% nice, 0.6% system, 0.3% interrupt, 88.2% idle
> Mem: 1734M Active, 1807M Inact, 2965M Wired, 1168K Cache, 827M Buf,
> 1393M Free
> Swap: 16G Total, 868K Used, 16G Free
>
> PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND
> 11 root 171 ki31 0K 128K CPU7 7 5102.6 100.00% {idle: cpu7}
> 11 root 171 ki31 0K 128K CPU6 6 5098.5 100.00% {idle: cpu6}
> 11 root 171 ki31 0K 128K CPU3 3 5097.5 100.00% {idle: cpu3}
> 11 root 171 ki31 0K 128K RUN 0 5076.2 95.07% {idle: cpu0}
> 11 root 171 ki31 0K 128K CPU2 2 5076.6 92.48% {idle: cpu2}
> 11 root 171 ki31 0K 128K RUN 5 5100.7 87.99% {idle: cpu5}
> 11 root 171 ki31 0K 128K CPU4 4 5089.2 87.50% {idle: cpu4}
> 11 root 171 ki31 0K 128K CPU1 1 5088.6 85.35% {idle: cpu1}
> 40102 root 108 0 35016K 9584K CPU5 5 0:51 56.59% {bacula-fd}
> 12 root -28 - 0K 352K WAIT 0 40:34 3.56% {swi5: +}
>
>
>
>
> So my question is, how do I go about working around this? Perhaps an
> option to tell the FD to buffer stuff in memory and then send it in
> bursts is available?
>
> Please advise.
>
Just also another point to check with the tls/encryption used
Did you check what are the available entropy are during your backup ...
cat /proc/sys/kernel/random/entropy_avail ( munin or collectd have plugin to
monitor that )
If you run on low entropy all encryption jobs are slowed down or block until
entropy get higher ...
This can be observed on ssl serveur refusing connexion etc ...
There's http://www.issihosts.com/haveged/ daemon which can help you to maintain
a high level of that.
Headless and diskless servers with limited input have relied on entropy
added by interrupts flagged with IRQF_SAMPLE_RANDOM. However, this
feature will be disappearing from the Kernel soon.
One solution is to run a daemon to add entropy from userspace to the
pool. Example daemons can be found here:
* http://www.vanheusden.com/aed/
* http://www.vanheusden.com/ved/
* http://egd.sourceforge.net/
distributions should provide these or similar daemons as options for users who
require additional entropy sources to keep /dev/random from blocking on
read.
The Kernel thread discussing this thread can be found here:
http://lkml.org/lkml/2009/4/6/283
commit 9d9b8fb0e5ebf4b0398e579f6061d4451fea3242
What: IRQF_SAMPLE_RANDOM
Check: IRQF_SAMPLE_RANDOM
When: July 2009
Why: Many of IRQF_SAMPLE_RANDOM users are technically bogus as
entropy
sources in the kernel's current entropy model. To resolve this, every
input point to the kernel's entropy pool needs to better document the
type of entropy source it actually is. This will be replaced with
additional add_*_randomness functions in drivers/char/random.c
Hope this give you also another way to resolve the case.
--
Bruno Friedmann bruno AT ioda-net DOT ch
Ioda-Net Sàrl www.ioda-net.ch
openSUSE Member
User www.ioda.net/r/osu
Blog www.ioda.net/r/blog
fsfe fellowship www.fsfe.org
(bruno.friedmann (at) fsfe.org )
tigerfoot on irc
GPG KEY : D5C9B751C4653227
------------------------------------------------------------------------------
This SF.net email is sponsored by
Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users
|