Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
SyncPad Node.js Server Revisited (mysyncpad.com)
56 points by roder on Dec 9, 2010 | hide | past | favorite | 15 comments


I have this problem too -- with my project, the server right at once uses 100% CPU and memory increases dramatically. During this time, it stops responding to requests. Monit notices this and just restarts it. This happens for me roughly every half-an-hour under very high load.

I'm using JSON parsing but not much else. No dependencies / libraries at all. Are there any steps I can take to provide useful data? Would anyone like me to run it with --prof and hammer it with 'ab' for example?

Here's the code: http://github.com/gcr/goggles


So the results were worse, even though everyone involved thought they would be better on the updated version.

Any theories?


I have no idea, I am completely baffled. I really want to try without the node_redis library and do it all in memory, keeping the Array of elements in the returned list at less than 1000.

UPDATE: I should also mention, if you look at the charts, there's a point in time which the CPU hits 99%-100% and it's always reproducible. Once the CPU hits 100% I have just sat back and watched the memory get chewed up.

I'm sure someone w/ more experience than me can probably debug what's going on. The code is there, I really hope someone else can take a look at it. As my friend mentioned, it's reproducible, it can be fixed.


Don't know if you'll see this, but as someone playing with both node and erlang, I'd love to hear more about your erlang setup (and your blog was down earlier when I looked).


tumblr :/

The way that SyncPad was prototyped was using PHP/MySQL. I ported that to using Mochiweb. I manage all of the queuing of messages through a relatively straight forward OTP gen_server and Redis.


[deleted]


Yes - first set of tests in the updated post.


theorising by armchair experts arent always accurate?

That sounds more confrontational than I meant it to, point if you just guess at improvements without testing them, it is still a guess.


I'm not sure Ryan Dahl should be considered an armchair expert with respect to Node.js.


as I edited that sounded more confrontational than I meant :) and I wasnt aiming it at ryan dahl (there was a lot of commentators in that thread).

I just meant that without the numbers its an guess, educated are otherwise, and we all know how many assumptions we make that end up being wrong when they are implemented.


Erlang has various defects, but it is bomb proof in many ways - it's been out there for many years with many people using it for critical infrastructure.

I'd bet on Node.js and similar efforts for the future, but Erlang is a pretty nice system and well worth looking at and learning from.


@roder, can you include the ./config file in your github repo for toyserver.js? Trying to replicate your setup and this is missing.


gist was updated, I included a client, which is needed to recreate the issue.


I think this is the first time I've actually updated a gist I cloned. It all makes sense now.

However, I can't figure out how to run this. I have your toyserver.js (and redis) running, and I have client.html making requests to the server, but the server always returns an empty response. My redis db is empty, is there something I need to do to populate it?



Thanks, can't seem to reproduce it though. I'm running Node from ry/node master (v0.3.2-pre) on OS X.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

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

Search: