java - Can I use JVM to implementing high loaded TCP/IP single-machine server? What about GC settings? -


i’m trying implement high loaded tcp/ip single-machine server.

i’ve several limitations:

  1. server must support 8 connections.
  2. each connection must receive 25 megabytes per second. think average summary speed of connections - 90% of time - 100 megabytes per second, system must stable work in worst case too.
  3. i need extract messages network input , split messages (my classes). messages vary hundreds bytes 10-15 megabytes. messages simple: several fields , – in case of big messages - array of bytes.
  4. i need register (write big plain file) data each connection. it’s guaranteed disk system can write @ such speed. i’ll use several enterprise-class ssds.
  5. there process processes data after writing disk. after time data deleted. i.e. need 50% of processor resources.
  6. server must work 24*7*365.
  7. server must work on commodity-class hardware (8gb ram, i7 (i5 preferable) processor). project have restrictions size of hardware (very small box, low heat , low power consumption) , price. unfortunately, can’t change if propose.

is here implemented high loaded systems on commodity software jvm? know, operations system must bufferize network input, gc delays don’t matter in such situation, isn’t it? can read jvm (gc)?

meybe it’s not high load system. welcome discuss

language / runtime least of worries:

you aren't going 200mb second on single network interface, not 1gb one. need @ least 2 1gb network interfaces bonded on both ends able push near speed through commodity hardware. 100mb per second isn't feasible on 1gb interface. approximately 0.8gb second. on real world sustained rate of 0.6gb see on single connection has jumbo frames enabled even. , have no overhead bursts.

this i/o bound @ hardware level, software least of worries. , these interfaces need support jumbo frames on both ends , switches, routers , other hardware in between.

ethernet maximum rates, generation, capturing & monitoring

software:

what propose can written in reasonably peformance high level language. java, python, ruby, erlang or .net capable. hardware constraints not going able on come.

hardware:

i going hard pressed kind of throughput on single commodity hardware machine. regardless of class of ssd, dedicated raid controller way going i/o want.


Comments

Popular posts from this blog

javascript - Jquery show_hide, what to add in order to make the page scroll to the bottom of the hidden field once button is clicked -

javascript - Highcharts multi-color line -

javascript - Enter key does not work in search box -