Very high iowait causing low performance

General support for problems installing or using Deluge
Post Reply
ctrlbrk
Member
Member
Posts: 25
Joined: Mon Jul 20, 2009 8:39 am

Very high iowait causing low performance

Post by ctrlbrk »

Ubuntu 8.04 x64, 2.6.24
Deluge 1.1.9
Python 2.5

I'm getting very high iowait with Deluge. The process is taking say 3-5% cpu, and iowait is another 90% cpu. Deluge seems to be bound to one cpu only even though there are four on this seedbox, but that is another story.

The iowait seems to be having an impact on performance. This is a 100mbit box and I can routinely get 10mb up and 10mb down, but only when serving one torrent. As the number of torrents increase, the iowait grows exponentially, and overall torrent speed is reduced to less than 1-2 meg a second.

The hard disks are hardware RAID 1 with an Adaptec 5405 with 256MB of on-board cache. The server has 8GB of ram and is a Quad Xeon. I do not think there is any real disk bottleneck occurring, I am instead thinking there is something wrong with the Deluge disk caching method?

Any insight or ideas on how to improve?
andar
Top Bloke
Top Bloke
Posts: 1050
Joined: Fri Jun 08, 2007 8:38 pm
Location: Victoria, BC
Contact:

Re: Very high iowait causing low performance

Post by andar »

ctrlbrk wrote:Ubuntu 8.04 x64, 2.6.24
Deluge 1.1.9
Python 2.5

I'm getting very high iowait with Deluge. The process is taking say 3-5% cpu, and iowait is another 90% cpu. Deluge seems to be bound to one cpu only even though there are four on this seedbox, but that is another story.

The iowait seems to be having an impact on performance. This is a 100mbit box and I can routinely get 10mb up and 10mb down, but only when serving one torrent. As the number of torrents increase, the iowait grows exponentially, and overall torrent speed is reduced to less than 1-2 meg a second.

The hard disks are hardware RAID 1 with an Adaptec 5405 with 256MB of on-board cache. The server has 8GB of ram and is a Quad Xeon. I do not think there is any real disk bottleneck occurring, I am instead thinking there is something wrong with the Deluge disk caching method?

Any insight or ideas on how to improve?

I would suggest increasing the disk cache size.. but unfortunately that is only available in 1.2 (trunk).
ctrlbrk
Member
Member
Posts: 25
Joined: Mon Jul 20, 2009 8:39 am

Re: Very high iowait causing low performance

Post by ctrlbrk »

andar wrote: I would suggest increasing the disk cache size.. but unfortunately that is only available in 1.2 (trunk).
Thanks, I had the same idea after reading here on the forum 1.2 has disk cache features. But, unfortunately I cannot get the trunk to build.

this is some output from python setup.py after getting the svn 1.2 trunk

If that doesn't provide enough info let me know. Not sure where to begin with this, maybe you know from experience (am hoping).

hmm txt extension not allowed, log extension not allowed, so I had to zip it.
Attachments
gcc-failed-with-exit-status-1.zip
(2.44 KiB) Downloaded 406 times
andar
Top Bloke
Top Bloke
Posts: 1050
Joined: Fri Jun 08, 2007 8:38 pm
Location: Victoria, BC
Contact:

Re: Very high iowait causing low performance

Post by andar »

ctrlbrk wrote:
andar wrote: I would suggest increasing the disk cache size.. but unfortunately that is only available in 1.2 (trunk).
Thanks, I had the same idea after reading here on the forum 1.2 has disk cache features. But, unfortunately I cannot get the trunk to build.

this is some output from python setup.py after getting the svn 1.2 trunk

If that doesn't provide enough info let me know. Not sure where to begin with this, maybe you know from experience (am hoping).

hmm txt extension not allowed, log extension not allowed, so I had to zip it.
You don't have the boost development libraries installed.

See http://dev.deluge-torrent.org/wiki/Installing/Source for information on how to install trunk.
ctrlbrk
Member
Member
Posts: 25
Joined: Mon Jul 20, 2009 8:39 am

Re: Very high iowait causing low performance

Post by ctrlbrk »

Well it compiled. Unfortunately, as soon as I connect it opens Connection Manager (which is empty) and when I click Add to add http://localhost it outputs to the console:


[ERROR ] 03:37:54 config:379 Error writing new config file: 'module' object has no attribute 'dump'

And I can get no further. :(

I already deleted the deluge directory under ~/.config to clean out things.
johnnyg
Top Bloke
Top Bloke
Posts: 1522
Joined: Sun Oct 28, 2007 4:00 am
Location: Sydney, Australia

Re: Very high iowait causing low performance

Post by johnnyg »

have you installed all the dependencies: http://dev.deluge-torrent.org/wiki/Installing/Source ?
(in particular the simplejson one)
matthieu
New User
New User
Posts: 4
Joined: Thu Jul 30, 2009 12:44 pm

Re: Very high iowait causing low performance

Post by matthieu »

I had the same problem on a smaller seedbox (2 cores 2.8Ghz, 2Gb RAM, 2 sata disks).
To solve my problem I did two things :
- change no raid to raid0 (soft raid)
- use xfs instead of ext3

No problem to use 100Mbits/s now, even with 170 seeds.
ctrlbrk
Member
Member
Posts: 25
Joined: Mon Jul 20, 2009 8:39 am

Re: Very high iowait causing low performance

Post by ctrlbrk »

andar wrote:
ctrlbrk wrote:Ubuntu 8.04 x64, 2.6.24
Deluge 1.1.9
Python 2.5

I'm getting very high iowait with Deluge. The process is taking say 3-5% cpu, and iowait is another 90% cpu. Deluge seems to be bound to one cpu only even though there are four on this seedbox, but that is another story.

The iowait seems to be having an impact on performance. This is a 100mbit box and I can routinely get 10mb up and 10mb down, but only when serving one torrent. As the number of torrents increase, the iowait grows exponentially, and overall torrent speed is reduced to less than 1-2 meg a second.

The hard disks are hardware RAID 1 with an Adaptec 5405 with 256MB of on-board cache. The server has 8GB of ram and is a Quad Xeon. I do not think there is any real disk bottleneck occurring, I am instead thinking there is something wrong with the Deluge disk caching method?

Any insight or ideas on how to improve?

I would suggest increasing the disk cache size.. but unfortunately that is only available in 1.2 (trunk).
Getting back on topic here ---

After I upgraded to 1.2 rc6 (trunk) I can report that a single instance of Deluge is now handling 25-30MB/sec on my seedbox before maxing out due to IOwait. I'm using a 32768 setting for the cache, it causes the Python deluge daemon process to use about 1GB of memory. I guess I could bump it up more, but I am very happy with 25-30MB/sec. Huge improvement, great job!

Now I don't have to run multiple daemons on my server any more, which was a real pain to manage! :)
andar
Top Bloke
Top Bloke
Posts: 1050
Joined: Fri Jun 08, 2007 8:38 pm
Location: Victoria, BC
Contact:

Re: Very high iowait causing low performance

Post by andar »

ctrlbrk wrote:
andar wrote:
ctrlbrk wrote:Ubuntu 8.04 x64, 2.6.24
Deluge 1.1.9
Python 2.5

I'm getting very high iowait with Deluge. The process is taking say 3-5% cpu, and iowait is another 90% cpu. Deluge seems to be bound to one cpu only even though there are four on this seedbox, but that is another story.

The iowait seems to be having an impact on performance. This is a 100mbit box and I can routinely get 10mb up and 10mb down, but only when serving one torrent. As the number of torrents increase, the iowait grows exponentially, and overall torrent speed is reduced to less than 1-2 meg a second.

The hard disks are hardware RAID 1 with an Adaptec 5405 with 256MB of on-board cache. The server has 8GB of ram and is a Quad Xeon. I do not think there is any real disk bottleneck occurring, I am instead thinking there is something wrong with the Deluge disk caching method?

Any insight or ideas on how to improve?

I would suggest increasing the disk cache size.. but unfortunately that is only available in 1.2 (trunk).
Getting back on topic here ---

After I upgraded to 1.2 rc6 (trunk) I can report that a single instance of Deluge is now handling 25-30MB/sec on my seedbox before maxing out due to IOwait. I'm using a 32768 setting for the cache, it causes the Python deluge daemon process to use about 1GB of memory. I guess I could bump it up more, but I am very happy with 25-30MB/sec. Huge improvement, great job!

Now I don't have to run multiple daemons on my server any more, which was a real pain to manage! :)
You may find even better performance with libtorrent 0.15 (which is currently unreleased but available from their svn repo).
Post Reply