Server build - needs opinions

I currently have following stock of hardware:

mobo's: z68, 2xz77, z87
cpu: i5 2500k (won't work with z87 - but z87 is msi mpower)
no case (have 2 but they are too big)

What I want from the server:
Apache, MySQL, custom-application about 100-300 simultaneous udp/tcp connections.
(performance wise should be same as minecraft, but it will require far more memory - its not for a game, just a project of mine) ~> will use up to 8GB of memory.

I am assuming MySQL size will rise up to 2GB of data. (anyone have any experience with indexes on MySQL?)
(i'll will create some purge script to keep it clean as much as possible) -- would it be better to locate MySQL on separate server? (Both Apache and custom-application will access it, create/modify records)

Should I even consider using old i5 2500k or simply get some xeon lga1150 for z87 and stick it with some cheap 1600 ddr3? (16gb?)

Should I even bother with windows on it? i can compile both ways. (thinking its going to be faster file serving on linux due to ext4) but if I use ssd's and memory divided disks mounts? -- its easier to accomplish than under linux.

Setting up server stuff under windows is a very painful experience.

How much computing will be done on the server? If it's comparable to a minecraft server with ~30 people the i5 should handle it. I think it should be more than enough for a web server with 300 clients.

If MySQL speed is critical, you can just add more ram to the server and give MySQL some ridiculous size of cache, like 4 GB.

16 GB of RAM is enough, the OS needs just a few hundred MB.

The only reason to use Windows for a server is if you need to use Windows only server software like Biztalk or SQL Server. For a small standalone server running LAMP stack Linux makes much more scene. Microsoft server licence costs can also be expensive if your server estate grows.

Database indexing is not overly complicated for simple use cases, think about what your primary keys are and what columns will be used in any where clauses.

just wanted to point out few things,

  • don't worry about the licenses :)
  • I can run headless windows instance, and then it uses more or less about the same amount of memory what linux shell does, only changes it makes is partition ntfs and ext4.
  • minecraft was just used as comparison load on memory (when you work with large 'worlds' + expansion of memory usage over time)
  • there is going to be +-500 active connections made to my engine as a load-test.
  • if i go over 500mb in first day with mysql i'll do indexes, it will gain me much more than more memory (though i'll keep it whole in memory anyway)

If you need fast, non-persistent data, you should check out Redis.

As for your hardware, I suggest you try out what you already have first. You can always buy new hardware later if you need it. You won't really know what your custom application needs until you test it (and optimize).

In an instance like this, with the kind of hardware budget you're talking about, just get one of the cheap AMD multi-cores (6300 or 8350 or something) and install Proxmox. Best of both worlds, and you can throw in more network cards to your heart's content. Trust me, you do not want Windows installed on bare metal if you need to use Linux programs at all.

it doesn't have to be that good. :)

i could go on rail if i wanted - i've chosen MySQL to learn indexing and optimizations for it - if i wanted to go for ultimate performance i'd go on hbase or elasticsearch.

@K4KFH
no point going on amd at the point where I have 4 unused intel mobo's. If I had amd's mobo i'd certainly would use amd's 8 cores.

Fair enough. lol