6 ms·
SyncPad Node.js Server Revisited
- mishmash 16y agoSo the results were worse, even though everyone involved thought they would be better on the updated version. Any theories?
- roder 16y agoI 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.
- deleted 16y ago[deleted]
- roder 16y agoYes - first set of tests in the updated post.
- mishmash 16y agoDon'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).
- roder 16y agotumblr :/ 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.
- daleharvey 16y agotheorising 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.
- mxavier 16y agoI'm not sure Ryan Dahl should be considered an armchair expert with respect to Node.js.
- daleharvey 16y agoas 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.
- geuis 16y ago@roder, can you include the ./config file in your github repo for toyserver.js? Trying to replicate your setup and this is missing.
- roder 16y agogist was updated, I included a client, which is needed to recreate the issue.
- tlrobinson 16y agoI 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?
- roder 16y agohere ya go: https://twitter.com/#!/roder/status/12954711699230720 https://twitter.com/#!/roder/status/12954711699230720
- tlrobinson 16y agoThanks, can't seem to reproduce it though. I'm running Node from ry/node master (v0.3.2-pre) on OS X.
- davidw 16y agoErlang 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.
- gcr 16y agoI 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 http://github.com/gcr/goggles