We are looking at this report. - Alfred
----Original Message---- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kyle Milnes Sent: Tuesday, July 26, 2005 12:16 AM To: [email protected] Subject: RE: [hlds_linux] BUG: Server-side sprays and lag spikes > Hi Bart, > > If what your research has uncovered is linked to lag-spikes then well > played on figuring it out. > > I would like to see Valves response to this, Alfred what is the state > of play? > > I'm going to run our servers on sv_allowupload 0 for a few days and > check out the difference. > > Either way Bart, thanks for your time, and thanks for posting it > where is should be posted :) > > - Kyle > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Bart > King > Sent: 23 July 2005 11:49 > To: [email protected] > Subject: [hlds_linux] BUG: Server-side sprays and lag spikes > > Hi all, > > Something that has been plaguing our 64 player server for a while is > seemingly random lag spikes, but after some detailed investigation > into the problem a co-admin and I have managed to find the reason. > > We tried everything to find out why this was happening, including > buying new hardware and changing bandwidth providers. After all that, > we are 100% convinced it was srcds and I finally have the proof. > > In brief, more detailed report follows: > > - The way srcds calculates the file name for storing uploaded sprays > causes lag. > > In order to get past the spam in the console[1], we reduced the > server to 32 players. We then were able to observe lag spikes in the > game, and by coincidence, monitoring the server console we saw this > error: > > CreateFragmentsFromFile: 'downloads/ee9becfc.dat' doesn't exist. > [message is repeated several times] > > In the time this message is printed, a lag spike occurs in the game. > In the past, it has been advised to "ignore" this message - while > this is safe to do so, when you have a popular server (as we do) it > happens far too regularly. > > And the reason why this is bad? We looked into more detail by using > strace on srcds to see what happens, here is the result just as the > CreateFragmentsFromFile message appears (note: we run Debian Linux): > > open("/cs/css/cstrike/downloads", > O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 13 fstat64(13, > {st_mode=S_IFDIR|0755, st_size=48, ...}) = 0 > fcntl64(13, F_SETFD, FD_CLOEXEC) = 0 > getdents64(13, /* 2 entries */, 131072) = 48 getdents64(13, /* 0 > entries */, 131072) = 0 > close(13) = 0 > > The downloads directory is where srcds stores uploaded sprays from > clients. > To put this into perspective, we have, on average, 3000 clients > connecting to our server a day, and if the majority of clients have a > custom spray, this will ultimately get uploaded to the srcds server. > > For example: > > banana:/cs/css/cstrike# ls -l downloads | wc -l > 52235 > > 52000 files over a three month period! > > Linux programmers on the list may notice that using getdents(2) on > that many files, not matter how fast the bus, disk or whatever, > *will* take a short moment - i.e. the exact length of one, random lag > spike. > > So to conclude, my questions are: > > - Why doesn't the server clean up the downloads folder? > - How does the server generate the filenames used to store uploaded > sprays? > - Can this be fixed? > > Our solution at the moment is to simply delete all content in the > downloads folder and/or set sv_allowupload to zero, but you get even > more CreateFragmentsFromFile errors in the console (but no lag!). > > We used a lot of time and effort to get to the bottom of this. I'd > appreciate if Valve would at least acknowledge this. > > [1] - Remove the console message that says "Free sound list is full!" > - it is absolutely meaningless. _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlds_linux

