PDA

View Full Version : Poor server bandwith


SerViL
11-28-2003, 02:18 PM
Hi guys, got a big problem with the serverspeed. the server has 100mbit, but sometimes if there are racin more than 6guys at the same time, speed goes down. dont know why and dont know how to fix it. i got newest ioftpd (5-3-9r) + iobanana (v19)


[20:11] <x> -x- [BW] + Up: 6@361.5kBps - Dn: 9@656.5kBps - Total: 15@1017.9kBps :confused:


hope you guys can help me!

thx - SerViL

PaJa
11-28-2003, 05:19 PM
if you are using single IDE disc than dont expect any miracles :P

darkone
11-28-2003, 09:52 PM
Originally posted by PaJa
if you are using single IDE disc than dont expect any miracles :P

It does 20mb/sec for me with hundreds of clients using ide disk... it's all about cache. I would however monitor server loads, as running external applications (such as iob) rises loads considerably - which in term, might cause odd things to happend, if server doesn't have enough cputime for file/socket io. (Other than that, it could be software firewall etc. that's causing such behaviour)

SerViL
12-01-2003, 11:14 AM
i checked the system but everything is ok on a race, cpu does not get more den 50% and others seems ok too.
i got serv-u on the server running too and there is no problem. if more than 3 guys are racin, listening with io sux. im very sad about it :(

/edit

maybe its configuration problem.. this is my config, hope ya can find something to fix..


[ioFTPD]
Ftp_Login_Attempts = 3
Hide_Tray = True [*registered version*]
Cache_Max = 100 # Maximum number of cookie files to cache
DirectoryCache_Size = 1000 # Maximum number of directories to cache
TCL_Pool_Size = 10
Double_Click = https://127.0.0.1:10000/
Process_Priority = Normal # (Idle/Normal/High/Realtime)
Worker_Thread_Count = 10 # Amount of worker threads
Io_Thread_Count = 3 # Amount of io threads [*registered version*]
Encryption_Thread_Count = 5 # Amount of dedicated encryption threads
LogIn_TimeOut = 15 #
Idle_TimeOut = 120 #
File_Concurrent_Requests = 5 # Maximum simultanous Read+Write operations per device [*registered version*]
File_PreAllocation = 0 # Amount of kilobytes to pre-allocate for uploads


[Locations]
User_Id_Table = ..\etc\UserIdTable
Group_Id_Table = ..\etc\GroupIdTable
Hosts_Rules = ..\etc\Hosts.Rules

User_Files = ..\users
Group_Files = ..\groups
Log_Files = ..\logs
Cache_Files = ..\cache

Ftp_Messages = ..\text\ftp
Telnet_Messages = ..\text\telnet
Html_Files = ..\text\http

Default_Vfs = ..\etc\default.vfs
Environment = ..\etc\ioftpd.env



##################### DEVICES ########################
##
#
# [Device Name]
# Host = <Host/IP> # External host. Address shown to clients. (0.0.0.0 = any local ip)
# Ports = <Begin-End> # Ports to use for data transfers. May contain comma seperated list of port ranges.
# Random = <True/False> # Use ports in random order
# Bind = <Host/IP> # Internal host. If specified, connections are bound to this address instead of HOST.
#
# Global_Inbound_Bandwidth = <kB/s> # Limit overall inbound speeds
# Global_Outbound_Bandwidth = <kB/s> # Limit overall outbound speeds
# Client_Inbound_Bandwidth = <kB/s> # Limit client inbound speeds
# Client_Outbound_Bandwidth = <kB/s> # Limit client outbound speeds
#


[Any]
Host = 0.0.0.0
Ports = 1024-2048
Random = True
;Global_Inbound_Bandwidth = 1000
;Global_Outbound_Bandwidth = 2000
;Client_Inbound_Bandwidth = 100 [*registered version*]
;Client_Outbound_Bandwidth = 50 [*registered version*]
;Bind =


################## END OF DEVICES ####################



##################### SERVICES #######################

[FTP_Service]
Type = FTP
Device_Name = Any
Port = 56600
Description = My FTP Service
User_Limit = 30
Allowed_Users = *
;Messages = ..\text\ftp

### Encryption ###
#
Require_Encrypted_Auth = !*
Require_Encrypted_Data = !*
Certificate_Name = blub
Explicit_Encryption = True
Encryption_Protocol = SSL3
Min_Cipher_Strength = 1
Max_Cipher_Strength = 40
#Max_Cipher_Strength = 384

### IDNT command handler ###
#
Get_External_Ident = True

### Traffic Balancing ###
#
;Data_Devices =
;Random_Devices = True


[Telnet_Service]
Type = Telnet
Device_Name = Any
Port = 3333
Description = My Telnet Service
User_Limit = 10
Allowed_Users = T !*
;Messages = ..\text\telnet


################## END OF SERVICES ###################


[Network]
Active_Services = FTP_Service Telnet_Service

Nagle = True False # Enable/Disable TCP Nagle algorithm
Ident_Timeout = 5 # Set ident timeout (seconds)
Hostname_Cache_Duration = 1800 # Seconds cached hostname is valid
Ident_Cache_Duration = 120 # Seconds cached ident is valid
Connections_To_Ban = 1000000 #
Ban_Counter_Reset_Interval = 1 #
Temporary_Ban_Duration = 1 # Seconds host remains banned
Internal_Transfer_Buffer = 65536 # Internal transfer buffer size
Scheduler_Update_Speed = NORMAL # Socket scheduler update speed (HIGH/NORMAL/LOW/DISABLED)


[Sections]
## Maximum of 10 different credit sections ##
#
# <alias> = <credit section #> <path>
# <alias> = <credit section #> <stats section #> <path>
#

MAiN = 0 /
GAMES = 0 /GAMES/*
DVDR = 0 /DVDR/*
SVCD = 0 /SVCD/*
XXX = 0 /XXX/*
MP3 = 0 /MP3/*
TV = 0 /TV/*
REQUESTS = 0 /REQUEST/
0DAY = 0 /0DAY/
EBOOKS = 0 /0DAY/EBOOKS/*
DOX = 0 /0DAY/DOX/*
SPEED = 1 /SPEED/*
PRE = 2 /_PRE/*


[VFS]
###
# Default attributes for files & directories
#
# Required Parameters: <filemode> <owner uid>:<owner gid>
#

New_Directory = 777 0:0
New_File = 644 0:0
Default_Directory_Attributes = 777 0:0
Default_File_Attributes = 644 0:0
Old_Directory = 777 0:0
Old_File = 644 0:0


###
# Command specific rules
#
Modify_Stats_On_Delete = False


###
# Detailed permissions for directories
#
# priviledge = <virtual path> <rights>
#
Upload = * *
Resume = * *
Download = * *
MakeDir = * *
RemoveOwnDir = * *
RemoveDir = * 1VM
Rename = * 1VM
RenameOwn = * *
Overwrite = * 1VM
Delete = * 1VM
DeleteOwn = * *
NoStats = * =lSpeed !*
ShowActivity = /_PRE/* 1M !*
ShowActivity = * *
RemoveDir = /_PRE/* !* =GRP1 =GRP2
Rename = /_PRE/* !* =GRP1 =GRP2
Delete = /_PRE/* !* =GRP1 =GRP2

[Reset]
WeeklyReset = Monday
MonthlyReset = 1st


[Scheduler]
###
# Scheduler
#
# Event = <minutes> <hours> <day of week> <day of month> Command
#
# Internal Commands:
#
# &Reset : Resets upload/download counters
# &Service_Update : Reloads devices and Restarts services, if bind ip of service has changed
#
Reset = 0 0 * * &Reset
Service_Update = 10,30,50 * * * &Service_Update

## ioBanana
Rotate_Log = 0 0 * * EXEC ..\scripts\ioBanana.exe rotatelog
Day_Stats = 59 23 * * EXEC ..\scripts\ioBanana.exe daystats
;Spider = 0 0 * * EXEC ..\scripts\ioBanana.exe SPIDER FORCEDELETE

## ioA
Newday = 0 23 * * EXEC ..\ioA\ioA.exe NEWDATE
Weekly = 0 0 6 * EXEC ..\ioA\ioA.exe WEEKLYSET


[Events]

## ioBanana
OnUploadComplete = EXEC ..\scripts\ioBanana.exe upload
OnUploadError = EXEC ..\scripts\ioBanana.exe uploadfailed

## ioA
OnFtpLogIn = EXEC ..\ioA\ioA.exe logon


[Pre]

## ioBanana
user = EXEC ..\scripts\ioBanana.exe closed
pass = EXEC ..\scripts\ioBanana.exe ban
retr = EXEC ..\scripts\ioBanana.exe limiter
mkd = EXEC ..\scripts\ioBanana.exe dupecheck_dir
mkd = EXEC ..\scripts\ioBanana.exe checkdenypre
stor = EXEC ..\scripts\ioBanana.exe pre_stor


[Post]

## ioBanana
pass = %EXEC ..\scripts\ioBanana.exe alert %[service($service)(users)] %[$service]
dele = EXEC ..\scripts\ioBanana.exe zsdel
mkd = EXEC ..\scripts\ioBanana.exe mkd
rmd = EXEC ..\scripts\ioBanana.exe dirlog
rnfr = EXEC ..\scripts\ioBanana.exe dirlog
rnto = EXEC ..\scripts\ioBanana.exe dirlog
site = EXEC ..\scripts\ioBanana.exe age uinfo


[HTTP]
Executable = *.exe *.com *.cgi *.php *.php3 *.bat



[Scripts]
## SITE <trigger> <parameters>
#
# trigger = !file # Show file
# trigger = @string # Alias
# trigger = EXEC script.exe # Execute file.exe
# trigger = %EXEC script.exe # Execute file.exe (translate cookies)
# trigger = TCL script.itcl # Execute file.itcl
#
## Examples
# welcome = !..\text\ftp\welcome.msg
# rehash = @config rehash
# exec = EXEC ..\scripts\exec.bat
# myinfo = %TCL ..\scripts\whoami.itcl %[$user]
# cat = TCL ..\scripts\showfile.itcl
#
TCL = TCL ..\scripts\test2.itcl

#stats
aldn = @stats alldn
alup = @stats allup
daydn = @stats daydn
dayup = @stats dayup
monthdn = @stats monthdn
monthup = @stats monthup
wkup = @stats wkup
wkdn = @stats wkdn

## ioBanana
rules = !..\help\rules.msg
free = !..\text\ftp\free.msg
ginfo = EXEC ..\scripts\ioBanana.exe ginfo
gstats = EXEC ..\scripts\ioBanana.exe gstats
pretime = EXEC ..\scripts\ioBanana.exe pretime
new = EXEC ..\scripts\ioBanana.exe sitenew
cid = EXEC ..\scripts\ioBanana.exe cid
roulette = EXEC ..\scripts\ioBanana.exe roulette
dice = EXEC ..\scripts\ioBanana.exe dice
open = EXEC ..\scripts\ioBanana.exe open
close = EXEC ..\scripts\ioBanana.exe close
approve = EXEC ..\scripts\ioBanana.exe approve
listapproved = EXEC ..\scripts\ioBanana.exe listapproved
version = EXEC ..\scripts\ioBanana.exe version
rotatelog = EXEC ..\scripts\ioBanana.exe rotatelog
rescan = EXEC ..\scripts\ioBanana.exe rescan
totals = EXEC ..\scripts\ioBanana.exe totals
age = EXEC ..\scripts\ioBanana.exe age
dupe = EXEC ..\scripts\ioBanana.exe sitedupe
undupe = EXEC ..\scripts\ioBanana.exe undupe
nfo = EXEC ..\scripts\ioBanana.exe nfo
uptime = EXEC ..\scripts\ioBanana.exe uptime
restart = EXEC ..\scripts\ioBanana.exe restart
stransfer = EXEC ..\scripts\ioBanana.exe transfer
rank = EXEC ..\scripts\ioBanana.exe rank
moverls = EXEC ..\scripts\ioBanana.exe moverls
pre = EXEC ..\scripts\ioBanana.exe pre
wipe = EXEC ..\scripts\ioBanana.exe dirlog
nuke = EXEC ..\scripts\ioBanana.exe kicknuke NUKE
unnuke = EXEC ..\scripts\ioBanana.exe kicknuke UNNUKE
resetstats = EXEC ..\scripts\ioBanana.exe resetstats

## ioA
nuke = EXEC ..\ioA\ioA.exe nuke
#nuke = TCL d:\ioftpd\scripts\ionuke.itcl
unnuke = EXEC ..\ioA\ioA.exe unnuke
nukes = EXEC ..\ioA\ioA.exe nukes
unnukes = EXEC ..\ioA\ioA.exe unnukes
request = EXEC ..\ioA\ioA.exe request
reqfilled = EXEC ..\ioA\ioA.exe reqfilled
reqdel = EXEC ..\ioA\ioA.exe reqdel
pre = EXEC ..\ioA\ioA.exe pre
invite = EXEC ..\ioA\ioA.exe invite
newdate = EXEC ..\ioA\ioA.exe newdate
ioaver = EXEC ..\ioA\ioA.exe ioaver
msg = EXEC ..\ioA\ioA.exe msg
wipe = EXEC ..\ioA\ioA.exe wipe
give = EXEC ..\ioA\ioA.exe give
take = EXEC ..\ioA\ioA.exe take
search = EXEC ..\ioA\ioA.exe search
onel = EXEC ..\ioA\ioA.exe onel
sfv = EXEC ..\ioA\ioA.exe sfv
size = EXEC ..\ioA\ioa.exe size
syslog = EXEC ..\ioA\ioa.exe syslog
errlog = EXEC ..\ioA\ioa.exe errlog
cmdlog = EXEC ..\ioA\ioa.exe cmdlog
weekly = EXEC ..\ioA\ioa.exe weekly
transfer = EXEC ..\ioA\ioa.exe transfer
resetuser = EXEC ..\ioA\ioa.exe resetuser



[Modules]
;MessageVariableModule = ..\modules\cookie.dll
;UserModule = ..\modules\networkuser.dll
;GroupModule = ..\modules\networkgroup.dll
;EventModule = ..\modules\eventmodule.dll


[Ftp-Permissions]


[Ftp-SITE-Permissions]
## SITE <cmd> ##
#
# 'M' - MASTER
# 'V' - VFS ADMINISTRATOR
# 'G' - GROUP ADMIN RIGHTS
# 'F' - FXP DENIED (DOWNLOAD)
# 'f' - FXP DENIED (UPLOAD)
# 'L' - SKIP USER LIMIT PER SERVICE
# 'A' - ANONYMOUS
#
adduser = 1GM
deluser = 1GM
renuser = 1M
gadduser = 1GM
grpadd = 1M
grpdel = 1M
grpren = 1M
chgrp = 1M
kick = 1M
addip = 1GM
delip = 1GM
passwd = !A *
stats = !A *
tagline = !A *
who = !A *
chmod = !A *
chown = MV
chattr = MV
config = M
uinfo = 1GM
users = 1GM

## ioBanana
ginfo = 1GM
gstats = 1GM
pretime = *
new = *
roulette = *
dice = *
close = 1M
open = 1M
approve = 1MN
listapproved = *
version = 1M
rotatelog = 1M
rescan = 1M
age = 1M
dupe = 1MN
undupe = 1M
nfo = *
uptime = *
restart = 1M
stransfer = *
exec = M
rank = 1M
moverls = 1M
resetstats = 1M

## ioA
invite = *
ioaver = 1M
sfv = 1M
msg = *
newdate = 1M
nuke = 1MN
nukes = *
unnuke = 1MN
unnukes = *
request = *
reqfilled = *
pre = 1GP
wipe = 1MV
take = 1MV
give = 1MV
search = *
onel = *
size = 1
syslog = 1
errlog = 1
cmdlog = 1
weekly = 1MV
transfer = *
resetuser = 1M


[Change-Permissions]
admingroup = 1M
credits = 1M
flags = 1M
groupdescription = 1M
groupslots = 1M
groupvfsfile = M
homedir = 1GM
logins = 1M
passwd = 1GM
ratio = 1GM
stats = M
tagline = 1GM
showjobs = M
speedlimit = 1GM
vfsfile = M


[Telnet-Permissions]
adduser = 1GM
deluser = 1GM
renuser = 1M
gadduser = 1GM
grpadd = 1M
grpdel = 1M
grpren = 1M
kick = 1M
addip = 1GM
delip = 1GM
passwd = *
stats = *
tagline = *
who = *
chgrp = 1M
config = M
putlog = MT
uinfo = 1GM

darkone
12-01-2003, 05:32 PM
Wheter it works perfectly on serv-u is irrelevant, as it's based on different API calls. Overlapped IO (usinc completion ports) is much harder to manage on driver level, and improper implementation could result to what you've experienced.

Driver in this case can be;
1) harddrive controller's driver
2) network adapter's driver
3) 3rd party driver hook (virus scanner, firewall, ...)

I'm not sure, if there's any way to debug this... also 50% cpu usage sounds high for such speed (if it's average; on 2ghz p4 it should be closer to 0 than 50 :) - ofcourse external scripts may have effect on this, as they add overhead)

Mave_2
12-03-2003, 10:41 AM
Hm i wonder to what causes this
I have the same problem on my site
and i know several other sites running ioFTPD which have same problem lately
Also cpu on some of those sites reaches the top sometimes

SerViL
12-03-2003, 11:43 AM
yes and i cant fix it :/
currys want glftpd but i already donated for ioftpd.
maybe its configproblem but dont know how to fix it. hope there comes an io update soon, which works good on my site without this damn speedprobs :banana:

darkone
12-03-2003, 01:03 PM
Scheduler might cause infinite loop (causing cpu to hit ceiling, which in term - affects performance) You could try disabling all scripts,as that's the most likely cause for high loads on slow speeds.

donate
12-05-2003, 08:19 AM
Warez = bad :mad: