Log in

View Full Version : new server: windows vs. linux and VMware?


RhinoDude
10-18-2008, 03:47 PM
Hey folks,

I've read in several places in the forums and maybe even the FAQ that, OS stability aside, the Linux EQ Emu server is simply more stable than the Windows server. Is this the case, or is the stability difference due to OS stability differences? I can admin a stable windows server, that's not an issue. But if the EQ Emu binaries are really more stable under Linux than Windows, I'll consider it. But frankly I'd rather run it directly under Windows as long as there are no disadvantages to doing so.

Also, is anybody running EQ Emu under a VM hosting either Windows or Linux? I was thinking that if I am going to run Linux (if there are significant advantages), that I would host it as a VM on my quad-core Win2008 rig which, according to my other thread, seems to have plenty of horsepower (quad-core 2.5ghz, 16gb ram, several TB for storage, etc.).

Has anybody run EQ Emu under a VM and found any issues?

Thanks
- Rhino

paaco
10-18-2008, 03:57 PM
I have never run one in Linux, but mine on Windows Server 2003 seems extremely stable. I don't think it has ever crashed, I'll admit I make a lot of changes though. Longest I have gone without rebooting for some changes is 3 days or so. But it was still going strong after 3 days.

trevius
10-18-2008, 04:48 PM
Windows isn't bad, but Linux is definitely more stable. It isn't Windows itself that is the problem, it is the server code. One of the main issues with Windows is player ghosting. After a few days of players leaving ghosts, a server with decent traffic will be almost unplayable. This won't be as noticeable until you start getting a fair number of players on the server though. Linux doesn't have player ghosts, so it isn't an issue at all there. You can leave a server up much longer without a reset than on Windows. And for some reason, with Windows, you will actually want to reboot the whole PC every week or 2, but Linux never needs to be restarted.

RhinoDude
10-19-2008, 05:52 AM
Is this player ghosting something that is considered a bug, or just a design issue that would take a large effort and/or major refactoring to eliminate? I'm curious because I thought Windows and Linux essentially shared the same code base, I guess that is not the case?

Once I get my book done I may be able to take the time to jump in and try to figure out unless this is known to be a issue that would take a significant rewrite to work around.

In my case though it doesn't sound like it will be an issue. I can easily reboot the server daemon after each play session. I was planning on taking it down anyway in between sessions of the group anyway.

Thanks,
- Rhino

paaco
10-19-2008, 07:05 AM
It is a bug, I don't think anyone has tracked down the exact cause yet. It seems to happen when a player uses /q instead of /camp. I have seen a few on my server that were ghosts, you can tell be inspecting them, if you are unable to inspect it is a ghost and you can /kick them.

RhinoDude
10-20-2008, 08:41 AM
Doesn't sound like it should be too hard to track down. I wonder if the same issue happens with linkdead players?

Is the server completely written in Perl? That's certainly not one of my stronger languages as I don't use any of the scripting languages often, but I'd be willing to take a look at it when I get a working environment to debug with.

- Rhino

Andrew80k
10-20-2008, 12:19 PM
The server code is C++, it has an embedded perl that is used for writing quest scripts. There has been some discussion going on about this bug in the past but I don't think anyone has tracked it down yet. I run on Linux so I would recommend that and am comfortable in that environment, but if you are comfortable in windows it certainly runs well enough on that platform. You will need to be mindful of the aforementioned ghost bug though until that is tracked down.

RhinoDude
10-20-2008, 12:24 PM
Thanks I already started surfing the development forum and downloaded the code, I'll take a look for it as time permits.

I assume the C++ code is portable, ie the same source is used to compile the windows and linux servers?

I'm going to open up a thread in the dev forum, thanks a bunch.

- Rhino

Andrew80k
10-20-2008, 12:28 PM
Thanks I already started surfing the development forum and downloaded the code, I'll take a look for it as time permits.

I assume the C++ code is portable, ie the same source is used to compile the windows and linux servers?

I'm going to open up a thread in the dev forum, thanks a bunch.

- Rhino
Yup. Code is the same on both.

RhinoDude
10-20-2008, 12:50 PM
Thanks, I actually found a Bug Report thread that Trevius started dealing with exactly that issue, so I've chimed in there:

http://www.eqemulator.net/forums/showthread.php?t=24424

Hopefully we can get this nailed, it sounds like a lot of people could a benefit from it. Not necessarily myself as I'll be bringing my server down after every session, but I know if I was running a "normal" server I'd want it to be able to stay up for weeks on-end if possible.

- Rhino

AndMetal
10-20-2008, 12:54 PM
Yup. Code is the same on both.

The code is essentially the same, although there are some manual tweaks for it to work with both Windows & *nix systems. Basically, look for all of the #ifdef WIN32 or #if defined(WIN32) blocks and there are your differences between Linux & Windows.

I think there was a post that Trevius posted that had some snippets of code that may have been suspect, but I don't think anything really became of it.

Andrew80k
10-20-2008, 01:10 PM
The code is essentially the same, although there are some manual tweaks for it to work with both Windows & *nix systems. Basically, look for all of the #ifdef WIN32 or #if defined(WIN32) blocks and there are your differences between Linux & Windows.

I think there was a post that Trevius posted that had some snippets of code that may have been suspect, but I don't think anything really became of it.
What I meant, and what I thought he was asking, is that there was not a different download for Windows vs. Linux.

RhinoDude
10-20-2008, 02:23 PM
Yep, that is what I meant, sorry I wasn't clear. And I've already gone through some of the code and noticed the #ifdef's right off. Thanks for the heads up though.

- Rhino