Hacker Timesnew | past | comments | ask | show | jobs | submitlogin

You can support 10,000 requests/second hitting a servlet engine, with dynamic templates, and backend DB calls, on one quad core box? I'd like to give you a job.

Maybe I've been working with heavyweight frameworks too long, but that seems an order of magnitude off at least. Any stats on Servlet JVMs that can do 10k requests/second on a single quad core?



You can support 10,000 requests/second hitting a servlet engine, with dynamic templates, and backend DB calls, on one quad core box?.

5-10k, depending; a local instance of a recent webapp I wrote can run 5.9k requests/sec on a simple page JSP-templated page backed by a database request. It's running on tomcat, using servlets with a lightweight REST API, and postgresql.

The webapp I'm working on right now has the following performance profile for a page that fetched the user-list from the backing database. Not as fast, but 2k req/sec is not bad, and I haven't done any profiling on the new stack we're using at all yet:

  Server Software:        Jetty(6.1.x)
  Server Hostname:        localhost
  Server Port:            8080

  Document Path:          /users
  Document Length:        5855 bytes

  Concurrency Level:      4
  Time taken for tests:   0.508 seconds
  Complete requests:      1000
  Failed requests:        0
  Write errors:           0
  Total transferred:      6045474 bytes
  HTML transferred:       5855000 bytes
  Requests per second:    1968.41 [#/sec] (mean)
  Time per request:       2.032 [ms] (mean)
  Time per request:       0.508 [ms] (mean, across all concurrent requests)
  Transfer rate:          11621.09 [Kbytes/sec] received

  Connection Times (ms)
                min  mean[+/-sd] median   max
  Connect:        0    0   0.1      0       1
  Processing:     1    2   1.7      2      22
  Waiting:        1    2   1.7      2      22
  Total:          1    2   1.7      2      22

  Percentage of the requests served within a certain time (ms)
    50%      2
    66%      2
    75%      2
    80%      2
    90%      3
    95%      3
    98%      4
    99%     12
   100%     22 (longest request)


I'd like to give you a job.

Something in your tone tells me you're not serious ...

Maybe I've been working with heavyweight frameworks too long, but that seems an order of magnitude off at least.

I couldn't say; I do have local 3rd party spring-based webapps that take 5 minutes just to start up, not to mention 300ms+ to render a single page, so I wouldn't be surprised.


Your methodology doesn't reflect actual usage of the site. I suspect there hardly an (if any) writes happening when you hit /users, the database is repeatedly fetching a hot query (or you are pulling from a cache that isn't changing because there are no writes happening), your dataset could be minimal, etc.


That may be partially true[1], but I'd challenge you to re-implement this non-optimized case (ie, this is a rough webapp, no caching, etc) in another runtime on similar hardware and see:

1) Whether it can support anywhere near the same level of concurrent requests with similar response times.

2) How much complexity (nginx + unicorn + memcached + puppies) is required to achieve this in comparison to a servlet engine (eg, tomcat) and your webapp.

[1] Most web applications are read-heavy, low on writes, and scaling up write capability generally requires scaling up the database. You can grow quite a bit with simple caching and monolithic database scaling before having to tackle more complex distributed data architectures.


If those 1968.41 [#/sec] were on a quad core then python can match it.


I maintain an internal app at work that handles @3k requests per second per dual core server. Site runs on coldfusion on windows. Its a conferencing app so users poll every second for updates. Nothing special about it, just putting this out there to show that the bog standard install of a jvm can be pretty powerfull


Coldfusion runs on the JVM?



Open source to boot!

http://openbluedragon.org/




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: