Linux Server Release Announced but, Windows Emulation!?
tagwolf
SF Bay Area Join Date: 2013-02-01 Member: 182710Members, Reinforced - Shadow, WC 2013 - Silver
Any news devs? I really hate to be "that guy" and this is the 2nd time in my life I've gone to a dev team to ask them when support will be available...
but in a post 1137 days ago you said:
I should add to this discussion, that none of this applies to running dedicated servers on Linux. Dedicated servers don’t require graphics, input or any of those other platform specific things. And one of the great things about writing all of the game code in Lua is that it’s inherently platform agnostic. Dedicated Linux server support will be in the initial release.
So. I have a dedicated linux server. I've asked for the LUA source. I've offered to help port.
What can I do in the mean time? Because it seems I have to install VMWare Workstation and run windows 7 on top of linux..
Can you give us anything? A bite...anything please?
--Hopeful Server Admin
but in a post 1137 days ago you said:
I should add to this discussion, that none of this applies to running dedicated servers on Linux. Dedicated servers don’t require graphics, input or any of those other platform specific things. And one of the great things about writing all of the game code in Lua is that it’s inherently platform agnostic. Dedicated Linux server support will be in the initial release.
So. I have a dedicated linux server. I've asked for the LUA source. I've offered to help port.
What can I do in the mean time? Because it seems I have to install VMWare Workstation and run windows 7 on top of linux..
Can you give us anything? A bite...anything please?
--Hopeful Server Admin
Comments
Currently running a Win 2008R2 VM just to host NS2! Ridiculous!
I'm hung up on what library or dependency is not allow the SERVER to run natively in linux..
Could be P4 architecture
root@sp2021e:~# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Xeon(R) CPU X3320 @ 2.50GHz
stepping : 10
microcode : 0xa07
cpu MHz : 1998.000
cache size : 3072 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dts tpr_shadow vnmi flexpriority
bogomips : 4987.70
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Xeon(R) CPU X3320 @ 2.50GHz
stepping : 10
microcode : 0xa07
cpu MHz : 1998.000
cache size : 3072 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 4
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dts tpr_shadow vnmi flexpriority
bogomips : 4987.45
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Xeon(R) CPU X3320 @ 2.50GHz
stepping : 10
microcode : 0xa07
cpu MHz : 1998.000
cache size : 3072 KB
physical id : 0
siblings : 4
core id : 2
cpu cores : 4
apicid : 2
initial apicid : 2
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dts tpr_shadow vnmi flexpriority
bogomips : 4987.50
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Xeon(R) CPU X3320 @ 2.50GHz
stepping : 10
microcode : 0xa07
cpu MHz : 1998.000
cache size : 3072 KB
physical id : 0
siblings : 4
core id : 3
cpu cores : 4
apicid : 3
initial apicid : 3
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dts tpr_shadow vnmi flexpriority
bogomips : 4987.51
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
I think your CPU is just too old to run NS2 servers effectively.
Servers work a little differently...see, they don't need to render 3d objects, etc. They just calculate stuff like, where players are on the map...where they are aiming, are they shooting, damage, structures, etc.
So yes, a quad core Xeon X3320 should be more than enough to run two 24 player servers on one box. (Yes 2x24)
So you know I'm not talking out of my ass, I work as a system engineer for Sony and I design game backend infrastructure like this everyday.
The problem is NOT the CPU. It's that I have to frackin' emulate windows on top of Linux because UWE won't make good on their promise (sorry, promises!) to release the Linux binaries.
Nor will they push out the LUA code builds so the dev community can help get them a working Linux server binary.
The reason you all need powerhouse machines to run a puny game server is because of poorly optimized code, bad network stacks, and oh yea....lua built upon WINDOWS for a server.
I'll repeat what was said 3 years ago now from UWE themselves:
So again.....can someone who knows what they are talking about (e.g. a Dev), not this guy above, please comment.
I've been wondering, what exactly do you think you're asking here? The Lua for the game is all included with your game (open up your game directory and you'll see it). What you should be referring to is the engine code, which is compiled into the Server.exe file you ultimately use.
Also, the issue is your CPU, at least with the current performance levels of the game. You may get slightly better performance running a Linux version of NS2 rather than via windows emulation, but much of our experience is that NS2 is being bottlenecked by parts of the game logic/code rather than the via the rendering and displaying the different graphical settings (except in a few cases such as ambient occlusion or shadows). As such, whatever gains you achieve from not having to render 3D objects are overwhelmed by the performance hit from doing the calculations of up to 24 different players, 30 times a second. The server specs for playercounts from the Dedicated Server wiki page are a good approximation of whats needed to host NS2 servers:
I'd only expect your Xeon X3320 @ 2.50GHz to be able to handle something like 10-12 players comfortably, but you could probably run up to four x 10-12 player servers if you wanted.
Your server is not powerful enough for this game unless you're overclocking it heavily. The OS has very little to do with this. It's not like windows is adding a lot of overhead to the game. Linux isn't magically going to make it faster either, it'll just fork dev.
Refer to scardybob's table to see what sort of power you actually need.
If you think your server _should_ be able to run the game, well that's another issue entirely. I think everyone wants the server to be able to be run on lower specs, but unfortunately that just isn't going to happen soon.
Ultimately, a game server SHOULDN'T need to perform this much work or need this much cpu per player.
This means one of 2 things.
1) Windows is not capable of threading dedicated processes as well as linux. (Which is true in almost every server in existance.) Hence why people use linux for servers as it's highly optimized for multiple user / network / process / and memory management.
2) Either the LUA code or a required library written in another language to run the server is not as optimized as it could be
Trust me. These Xeons are capable of running multiple, high demand procs with tons of connections natively in linux without issue. If you know anything about cpu's, here's the proc cpuinfo for ONE of the FOUR cores.
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 30
model name : Intel(R) Xeon(R) CPU X3430 @ 2.40GHz
stepping : 5
microcode : 0x3
cpu MHz : 1197.000
cache size : 8192 KB
physical id : 0
siblings : 4
core id : 3
cpu cores : 4
apicid : 6
initial apicid : 6
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ida dts tpr_shadow vnmi flexpriority ept vpid
bogomips : 4799.70
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
The issue I have is that devs promised us dedicated Linux binaries on release 2+ years ago. That hasn't happened nor have I hear a peep regarding this.
So yes. Running windows in a VM on top of linux is adding a LOT of overhead that wouldn't normally be there.
I guess for now we will just have to live with it. But it'd be really nice to hear something re: a delivery date.
I don't care much about running the game itself on linux. But others may. I dunno.
I can actually hit 18 players without choke running a Windows 7 VM on Ubuntu 12.04 x64 LTS. So it's not too shabby fortunately.
NS2 Server doesn't use more than 1 CPU Core a server/instance.
You could run a 24 Slot CSS Server without any issues!
But as you know NS2 doesn't run with the source Engine.
Maybe you should buy a new Server? In Germany a 3570k with 16GB ram, 2TB Raid, 10TB traffic cost only 40 Euro a month.
You seem to misunderstand what I'm saying. Even if they port it to linux, it will not magically allow your xeon to run a server. If you installed windows on it and natively ran an NS2 server, it would still not be powerful enough. In fact, you'd be lucky to run a 14 player server without choke after 10 minutes. As much as you want to try to make this a windows vs linux thing it is not. It is purely a performance thing.
The issue with performance on the server are what most people have been upset about for awhile. Unfortunately you think that it being a native linux app will allow you to run an NS2 server on your xeon, which is not the case. I am in the same situation where I have a massive server backend that should be able to run this game, but can not since it is very much a CPU speed issue.
In fact I'm not even sure there is any xeons out there that can run this game respectably (maybe the ones clocked at 3.4-3.5? for a 16 player server). I think most NS2 servers are overclocked i7s. (overclocking servers? yuck.)
The port to Linux will significantly improve performance. Especially in the way I can perform threading outside of a VM. Again....WINDOWS VT-X / BINARY EMULATION IS ADDING SIGNIFICANT OVERHEAD. How many times do I need to say it!?
Please research how hypervisors work. Then how Windows handles process and memory management, and how Linux handles these same things along with threading along with a far superior net/tcpip stack.
Also try to understand the concept of CPU load. Which is NOT CPU % usage.
They are completely different designs. In particular the L2/L3 Cache. Even server memory is designed differently.
While you may not understand this. CLOCK SPEED DOES NOT EQUAL PERFORMANCE. e.g. There are many 2.67GHz CPU's that will CRUSH 3.6GHz CPU's in server performance benchmarks.
And yes..I have a screen shot of the net_stats running the server full capacity. It performs like a champ at 18 people on 2.4GHz...GASP!
Again, clock speed is NOT the main factor in performance. It is A factor.
This alone tells me you're clueless. I won't get into any more of this. You got your answer. A linux version will come eventually.
However, I would be interested in how well it performs anyways. I presume this is the server your running on that hardware: http://ns2servers.devicenull.org/servers/258925/64.251.22.122:27015
You can see I the 18th, 19th, that choke didn't occur til that damn player #19th hopped on. Is not tied to entities in play from what I can help. It's all player overhead.
Yup..I'm clueless alright and have worked for about every IT company you've ever heard of as both a Director and a System Engineer.
To put it in terms you'll understand. I have a phd in computer science. I've helped build the OnLive NOC, multiple dev-ops scripts and apps. I've worked closely with Rob McCool (e.g., the person who WROTE Apace Web Server.)
I've also built multiple devops infrastructures and system engineered about 60,000 servers.
So don't really this you are qualified to tell me I don't know what I'm talking about.
Good luck.
No sorry. I know I came off "dickish". I get too worked up over engineering sometimes.
Apologize if I offended anyone.
Thanks!
edit: sorry, post came in too offensive so I had to edit it!
The coding of the NS2 dedicated servers is primarily single-threaded and very CPU intensive (which means our pair of 64 x 2.3GHz servers we have aren't much use because the GHz simply isn't high enough )
Yes, GHz is not the sole metric for CPU performance -- but it is pretty much all that can be done to improve NS2 server performance (trust me, I've tried).
The reason people are using consumer CPUs (See: i5/i7) instead of server-grade CPUs (See: Xeon or Opteron) is not because they are dumb, but for some of the following reasons:
People here are trying to help out of their own free will, yet, in my opinion, you come across as very self-entitled.
It's great that you've had the opportunity to work at lots of large companies, but advertising that does, unfortunately, not get your point across any better or make people respect you as an authority on the subject.
Hopefully you can be humble enough to recognise that you have learnt something new today (Fact: The NS2 server is heavily limited by CPU clock speed) without bashing my post, calling me an idiot or posting your résumé.
Best of luck running your NS2 server(s)!
You're absolutely right. Again, I apologize if I offended anyone. In my life and career I've had to be self-entitled and an asshole occasionally to get ahead and try to push out a better product. But this was outside the scope of my domain and I had trouble turning off the switch in my head in that "this is how something should be done / thought out". To the dev's...you've accomplished a shitload for a small team. I know how difficult that can be in the Bay Area and you didn't deserve any criticism from me.
I guess mainly I was upset from a consumer level on seeing a Dev blog post state something slated for launch and that not happening. However for the amount paid for this game, I have no right to complain about that as I've gotten hundreds of hours of play and enjoyment for myself, my team, and my friends. I would have honestly paid 4x for this game.
I hope to be able to contribute to the community more by bringing up further servers and having more competitive matches.
I hope you guys can look past what I said eventually and I will try to be better about it. It's easy to get worked up over the internet. I'm sorry and I feel bad about it.
Back to the topic real quick,
While not a multi-threading process, we have found a way to make some use of that fact on our servers.
We are assigning one VM / Server per Core. So far it's worked out well!
Thank you for the information. I've run into the same limitations running, for instance, a Minecraft server.