Avatar billede f-andersen Nybegynder
04. august 2008 - 11:58 Der er 11 kommentarer

langsom upload i proftpd

Hej,

Jeg har installeret en Debian med proftpd + mysql til at styre mine brugere i.

Dog giver ftp serveren mig problemer når en fil der er over ca. 20mb, bliver uploadet. Hastigheden på uploaden falder fra 200kb/sec til 1,0kb/sec.

Selve login, browsning i mapper virker uden problemer.

Jeg har bla. disse linjer i min proftpd.config:
IdentLookups off
UseReverseDNS off
TimeoutNoTransfer 0
TimeoutStalled 0
TimeoutIdle 0

Yderligere har jeg forsøgt at bruge passive ports, men med samme resultat! :(

Er der nogen der kan give mig en idé til hvad der er galt?
Avatar billede atroxes Nybegynder
05. august 2008 - 12:27 #1
Tjek om DMA er slået til med hdparm (køres som root)

hdparm -d /dev/hdX
Avatar billede f-andersen Nybegynder
05. august 2008 - 12:50 #2
# hdparm -d /dev/sdb
skriver følgende:

/dev/sdb:
Avatar billede f-andersen Nybegynder
05. august 2008 - 12:55 #3
Lige en konfiguration:

#
# /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes reload proftpd after modifications.
#

# Includes DSO modules
Include /etc/proftpd/modules.conf
Include /etc/proftpd/mysql.conf
<Global>
DefaultRoot            ~
IdentLookups            off
ServerIdent on "FTP server"
</Global>
RootLogin             off
RequireValidShell         off
#DefaultRoot            ~
UseReverseDNS            off
#IdentLookups            off
UseIPv6                off

ServerName            "FTP Server"
ServerType            standalone
DeferWelcome            on

MultilineRFC2228        on
DefaultServer            on
ShowSymlinks            on

TimeoutNoTransfer        0
TimeoutStalled            0
TimeoutIdle            0

#DisplayLogin                    welcome.msg
#DisplayFirstChdir              .message
ListOptions                    "-l"

DenyFilter            \*.*/

# Port 21 is the standard FTP port.
Port                21

# In some cases you have to specify passive ports range to by-pass
# firewall limitations. Ephemeral ports can be used for that, but
# feel free to use a more narrow range.
PassivePorts                    49152 65534

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances            256

# Set the user and group that the server normally runs at.
User                proftpd
Group                nogroup

# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask                022  022
# Normally, we want files to be overwriteable.
AllowOverwrite            on

# Uncomment this if you are using NIS or LDAP to retrieve passwords:
# PersistentPasswd        off

# Be warned: use of this directive impacts CPU average load!
#
# Uncomment this if you like to see progress and transfer rate with ftpwho
# in downloads. That is not needed for uploads rates.
# UseSendFile            off

TransferLog /var/log/proftpd/xferlog
SystemLog  /var/log/proftpd/proftpd.log

<IfModule mod_tls.c>
TLSEngine off
</IfModule>

<IfModule mod_quota.c>
QuotaEngine on
</IfModule>

<IfModule mod_ratio.c>
Ratios on
</IfModule>


# Delay engine reduces impact of the so-called Timing Attack described in
# http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02
# It is on by default.
<IfModule mod_delay.c>
DelayEngine off
</IfModule>

<IfModule mod_ctrls.c>
ControlsEngine        on
ControlsMaxClients    2
ControlsLog          /var/log/proftpd/controls.log
ControlsInterval      5
ControlsSocket        /var/run/proftpd/proftpd.sock
</IfModule>

<IfModule mod_ctrls_admin.c>
AdminControlsEngine on
</IfModule>

# A basic anonymous configuration, no upload directories.

# <Anonymous ~ftp>
#  User                ftp
#  Group                nogroup
#  # We want clients to be able to login with "anonymous" as well as "ftp"
#  UserAlias            anonymous ftp
#  # Cosmetic changes, all files belongs to ftp user
#  DirFakeUser    on ftp
#  DirFakeGroup on ftp
#
#  RequireValidShell        off
#
#  # Limit the maximum number of anonymous logins
#  MaxClients            10
#
#  # We want 'welcome.msg' displayed at login, and '.message' displayed
#  # in each newly chdired directory.
#  DisplayLogin            welcome.msg
#  DisplayFirstChdir        .message
#
#  # Limit WRITE everywhere in the anonymous chroot
#  <Directory *>
#    <Limit WRITE>
#      DenyAll
#    </Limit>
#  </Directory>
#
#  # Uncomment this if you're brave.
#  # <Directory incoming>
#  #  # Umask 022 is a good standard umask to prevent new files and dirs
#  #  # (second parm) from being group and world writable.
#  #  Umask                022  022
#  #            <Limit READ WRITE>
#  #            DenyAll
#  #            </Limit>
#  #            <Limit STOR>
#  #            AllowAll
#  #            </Limit>
#  # </Directory>
#
# </Anonymous>
Avatar billede atroxes Nybegynder
05. august 2008 - 13:29 #4
Umiddelbart vil jeg ikke mene fejlen ligger i proftpd.conf men derimod om din harddisk kører DMA. I PIO mode vil en overførsel typisk kvæle CPU'en ved større datamængder (+10MB). Mange små filer vil derfor ikke være et problem, men 1 stor kan nemt sænke performance betydeligt.

hdparm -d 1 /dev/sdb

Dette slår DMA til. Eventuelt også tjek om den harddisk du har valgt at bruge overhovedet understøtter det.

Alternativt kan det også fastslåes om DMA virker ved at køre en 'hdparm -tT /dev/sdb' og samtidigt i et andet ssh/console vindue holde øje med cpu load via top. Hvis det er abnormt højt, så virker DMA ikke.
Avatar billede f-andersen Nybegynder
05. august 2008 - 13:32 #5
Jeg forsøger at slå DMA til, for blot at teste dette.

Maskinen er virtuel og hostes på Vmware Server 1.0.6, om vmware diskene understøtter DMA, ved jeg ikke umiddelbart.
Avatar billede f-andersen Nybegynder
05. august 2008 - 13:34 #6
Jeg får følgende resultat, hvis jeg forsøger at slå DMA til:

# hdparm -d 1 /dev/sdb
  setting using_dma to 1 (on)
HDIO_SET_DMA failed: Invalid argument
Avatar billede atroxes Nybegynder
05. august 2008 - 13:49 #7
Der kan også være et problem på den server der kører VMWare serveren. Evt. pakketab på defekt netkort eller igen, DMA.
Avatar billede f-andersen Nybegynder
05. august 2008 - 14:08 #8
Hmm...

Jeg har forsøgt at uploade en 100mb text fil, til ftp serveren. Den når ca. 35% hen før den dør. Hvis jeg uploader en 80mb tiff fil, stopper den allerede ved 1%.

Jeg kan forsøge at installere en proftpd på en workstation maskine, som ikke kører virtuelt. Således jeg kan se om det er vmware der er problemet.

Hvis andre kommer i tanke om en eventuel anden løsning på problemet, så jeg stadig kan drive den virtuelt.
Avatar billede lassebm Nybegynder
12. august 2008 - 13:47 #9
Kører du det direkte fra LAN af eller over WAN?
Så kan du måske isolere om det du har problemet begge steder?
Avatar billede f-andersen Nybegynder
12. august 2008 - 14:18 #10
Tror jeg har fundet en mulig løsning.
Vmware tools var ikke installeret på serveren, det lader til at have løst problemet :)
Avatar billede lassebm Nybegynder
21. august 2008 - 08:48 #11
Super, husk at lukke :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester