Jump to content
Eternal Lands Official Forums
Erdie

Spontaneous performance reduction

Recommended Posts

The issue I described below appears since a few weeks and did not happen before even the same client was used (which is, of course, strange):

 

I am using an AMD64 3200+ with 1 Gig RAM and a Geforce 6600GT graphic card with the newest proprietary nvidia drivers on a real 64bit Gentoo system.

In a normal case I can enable all graphic features and get an fps rate about 160. Even with a resolution of 1600x1200 the game worked well. If i am running more than one client (in our whitelisted family) it worked also fast enough. I have powernowd running and with one client the CPU keeped at 800Mhz while i have limited the fps at 25.

As you know, i am creating sound files for EL and i am using the jack realtime audio server for this purpose and i could do that in parallel with the EL client.

 

Problem symptoms:

But since a few weeks it happens that the client slows down spontaneous to 10fps and even i disabled shadows and reduced the resoution to 1024x768 i could not get more than about 16fps. The CPU is on 2GHz at its limit as well. When using Jack, the soudserver crashes with all connected sound applications. Sometimes everything works normal after restarting the game client just for 1 or 2 minutes and then in slows down again. Its really annoying that i cannot work on sound design when el is running! Its even strange that this happened unsystematically. Maybe somebody has an idea and could help me here.

 

Even sometimes the situation changes when i leave a ingame building e. g. storage. I could happen that the issue disappears momentary even when i leave the building / area.

 

-Erdie

Edited by Erdie

Share this post


Link to post
Share on other sites

What happens if you remove the sound config file, or compile without NEW_SOUND?

 

I really hope that NEW_SOUND doesn't affect performance that much but I have been too busy to do any real tests.

Share this post


Link to post
Share on other sites

Hi Torg,

all these issues refer to the regular download client. I unfortunately did not get the CVS version running and therefore i still use the regular one. I tried to use the x86 binary instead of x86_64 but the problem are the same. Of couse it would be very helpful for me to switch to the CVS version but i was giving up in support of creating sound files which was more important at the time. Maybe you could help me but i assume you are currently too heavy under pressure closely before a new release.

I will install the official client which will come soon.

thanks :D

 

Maybe it doesn`t make sense to spend time on the regular client, so better ignore this thread. If it happens with the new client as well i can refresh this.

 

Erdie

Edited by Erdie

Share this post


Link to post
Share on other sites

If it happens with the official client, and you didn't change any computer hardware/drivers, you might want to check your computer fans (gpu and cpu). A drastic FPS decrease can be due to overheating.

Share this post


Link to post
Share on other sites

Hm .. i already though about that before and checked the CPU temperature with lm_sensors and the GPU temperature "nvclock -i". Unfortunalty i could not see any issues. As I mentioned above, my system runs with 800MHz even with EL running in a normal state because of powernowd. In this case I have just 46 °C CPU Temp. Under heavy load at summertime it went up to 70° without influence of system stability. I will try the client update and look what happenes then ..

I should mention that even a running compiler does not prevent the jack realtime server from running smoothly. But if i get the performance issues in the EL client, it totaly gets out of range: xruns, connection loss and crash :D

 

thanks for replying

Erdie

Edited by Erdie

Share this post


Link to post
Share on other sites
I should mention that even a running compiler does not prevent the jack realtime server from running smoothly. But if i get the performance issues in the EL client, it totaly gets out of range: xruns, connection loss and crash :wacko:

That sounds like its not CPU related, but possibly IO? That doesn't explain why EL would trigger it, but maybe if there are IO problems on the computer EL lagging is just another symptom?

Share this post


Link to post
Share on other sites

It seems to be caused by the client because all issues disappear after closing EL. I cannot see any abnormal behavior then. Therefore i posted it here because i thought i could be a supicious bug. But if nobody else have it .. I dont know :hug:

Share this post


Link to post
Share on other sites
It seems to be caused by the client because all issues disappear after closing EL.
I know you have 1gig of RAM, but is it possible its swapping like crazy?

Share this post


Link to post
Share on other sites

Hi Torg,

 

i installed a new Nvidia driver version. Up to now the problem seems to be fixed :) Up to now .. hopefully forever :D

 

thanks a lot

Erdie

Edited by Erdie

Share this post


Link to post
Share on other sites
i installed a new Nvidia driver version. Up to now the problem seems to be fixed :) Up to now .. hopefully forever :D

Cool.

Share this post


Link to post
Share on other sites

Hi Torg,

 

i installed a new Nvidia driver version. Up to now the problem seems to be fixed :) Up to now .. hopefully forever :D

 

thanks a lot

Erdie

Are these the new beta drivers you're referring to, or the release versions? Just wondering as I've had some minor driver probs lately and am pondering trying the beta versions.

Share this post


Link to post
Share on other sites

My current driver version is 100.14.19. I am on Gentoo "stable" x86_64. Anyway, what i can still see is, that after running EL a few hours the cpu consumption increases (but not dramaticially). At the beginning the cpu runs on 800Mhz after 2 hours almost 1800MHz and some hours later 2000MHz. Restarting the game lets the cpu run again at 800MHz. Could there be a memory leak in the client? IMHO this could also cause some more CPU activity, correct?

Maybe I could analyze the memory consumption from EL over time and create a graph and post it here ..

 

Opps, i was wrong - now i am walking though Mynadar with 10fps. 1 hour ago it worked smoothly

Edited by Erdie

Share this post


Link to post
Share on other sites

This is just a stab in the dark here. Does the client address multi-threading? That is, to say, if someone is using multiple processors does it understand it and either take advantage of it, or possibly get confused by it?

 

The reason I bring this up is, I've seen a problem surrounding multithreading pop up in several other applications in the recent past. Most of those applications have serious problems if the processor affinty isn't assigned to a single processor. Also, if that is the problem, I have a possible (probable) solution, at least for windows clients.

 

If this seems like a possible issue, or you'd like me to experiment with the affinity assignments to see if they have any affect on performance, I can give it a shot and let you know if it has any effect on the game. If, however, you already know that this "isn't" the issue. Please let me know and I'll move along...

 

Josi - forums, Dogbreath - in game

Share this post


Link to post
Share on other sites

On Mac OS X, the client uses 6 threads.

Does this mean it'd be worthwhile looking into this issue more? I have a workable, easy three step solution for windows clients if this is the problem. Not exactly sure how to address linux (foo-x) when it comes to affinity assignments.

 

Basically it's just a small program (that windows used to supply with 2000, that allows you to "patch" an exe and assign what processor it should run on.) It has solved this problem (if that's in fact what we have) on a couple of other apps I've used, and it's quite permenant (only need to do i once until the exe is changed.)

Share this post


Link to post
Share on other sites

If this is really a problem (which could be, a friend of mine had the same with a commercial game), you can temporarily "pin" the process to one CPU. Open up the Task Manager -> Processes, right-click on EL, and on multiprocessor machines you should be able to manually "pin" it to one of those CPUs. I can't remember the exact title of that option, but you should be able to find it.

Good luck!

Share this post


Link to post
Share on other sites

If this is really a problem (which could be, a friend of mine had the same with a commercial game), you can temporarily "pin" the process to one CPU. Open up the Task Manager -> Processes, right-click on EL, and on multiprocessor machines you should be able to manually "pin" it to one of those CPUs. I can't remember the exact title of that option, but you should be able to find it.

Good luck!

 

Yes, that's true but in the case of this game, which has no "launcher" you can't pin it until the game has already started hitting both processors (affinity is the option you're referring to.) In the case of the "other" games you're referring to (I hesitate to use their names here) this was exactly the problem/solution.

 

As there seems to be further interest in this, I will persue the solution some more and post my results here.

 

EDIT:

I applied this patching method to el.exe and found some pleasant results. I found no negative effects from applying this (not to say it couldn't have some hidden effects as I simply tried walking around to places where I'd normally hit some mysterious lag...) But, this seems to have eliminated those laggy spots... :o

 

One other plus I noticed was switching back and forth from full screen to windowed... This use to cause graphics corruption that I could only cure by turning shadow mapping on and off, it no longer causes this corruption when switching between.

 

So, here's how to do it.

 

CAUTION: if you don't know what you're doing here please don't try this and complain later that I've caused you some problem. Also, please follow these steps carefully, especially backing up your el.exe. This only applys to windows operating systems, I'm not sure how to do this with other operating systems. This also only applies to systems where your hardware has multiple processors or hyperthreading (multi-threading....)

 

=====

IMPORTANT: Please be sure to make a copy of el.exe before beginning. If this doesn't help you, restore your copy to the original.

 

Step 1: You'll need to get the following tool: imagecfg.exe

(this used to be available from microsoft and mysteriously vanished from their site or at least I couldn't find it there...)

 

Page for downloading: http://www.robpol86.com/Pages/imagecfg.php

 

Step 2: Read Instructions for using: http://searchwincomputing.techtarget.com/t...1039754,00.html

 

Step 3: apply the fix

 

 

 

 

example: imagecfg -a 0x1 "C:\Program Files\Eternal Lands\el.exe"

(in command prompt window or in start run...)

 

NOTE: be sure to use the qoutes around the file name and path or it won't apply right.

Edited by Josi

Share this post


Link to post
Share on other sites

I have a dual core CPU (Athlon X2 something) and it works fine on my machine..

 

OK, this was just a suggestion, wasn't sure if it'd solve anything or not. Seems to actually have boosted performance for me a touch, but it wasn't that bad to begin with. However, it doesn't seem to have caused any problems if someone wants to try it. Been playing on it all day since I did the steps above and everything is working fine.

Share this post


Link to post
Share on other sites

The issues came back even with the new client but i probably found the reason and would like to explain it here for those who could have a similar problem:

 

The problems have likely to do with my Twinview configuration. I have to Displays: 21" Samsung and 17" Acer. Recently i used both display with one xorg server with Twinview configuration. When the problem occurs, EL occupied about 30% user CPU load and about 70% system load. In normal operation i had just 20% user load and that`s all. This was suspect so I deactivated the 2nd Monitor and the performance problem disappeard at once. If this keeps the next time I will be sure that the issue depends on the display configuration.

Edited by Erdie

Share this post


Link to post
Share on other sites

I am sorry but I was too fast with my conclusion :D The problems came back even with one display after about 3 hours.

 

Now i downgraded the proprietary nvidia drivers from version 100.14.23 to version 100.14.19 and afterthat the machine worked stable since 18 hours (I didn't switch it off during the night)

I even have to correct something: When the issue occured the "si" value displayed in "TOP" raised up to about 70%. In the initial state, after booting the machine this value (does it mean software interrupt?) was about 1%. So it taked 3 hours to let it go to 70%. EL then uses the rest of 30% CPU load and the system was completly occupied and really slow.

After the driver downgrade the issue seems to be gone. I am sorry for my misleading conclusions above but overall it was a strange issue and i had to make try and error the find the reason. Anyway I want to share my experience with everyone to prevent you form having similar issues.

 

thanks

Erdie

 

EDIT: Now it worked again even with 2 displays :P

Edited by Erdie

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×