Re: [nodejs] Opinions on self hosting stacks for Node apps
Sorry for the late reply to everyone was at the track with my Kids all weekend racing so now to play catchup :). I probably didn't word that very well at all. I was saying that since each instance of Node will run in a separate process that the # of cores matters more than processor speed from what I have seen. Now I will say that we have our code separated into service families with each family running in a different instance of node and communicating either over IPC (local), TCP (in network remote), and REST over HTTP (public remote) for RPC. (on second read that seems more complex LOL) We have matched down our stack per machine to 2 node processes per core +1 (each) for OS and MongoDB usage. Nearness is used to decide what gets turned on on each stack (everything gets deployed but machines don't run the full stack), so two families that are likely to call between each other (hopefully one high load and one low) are placed on the same physical machine. Things that don't call one another are placed on completely separate machines. Replication is handled by MongoDB. When we placed it all on one single machine (I have to admit its a VM in a service center and I have no idea what it is) having the same # of cores, RAM, etc the server actually ran slower than when it was balanced across multiple smaller machines totaling the same specifications (# of cores and RAM). Thinking about this (and going back some years so my info is dated) this makes perfect sense as you should be lowering the task switch (even if it is pico seconds per switch) and there is no need to balance across multiple processors since in the case of i series processors the cores are on the same silicon pointing at the same IO Bus. In the server I'm guessing (4x4, 4x8, or 8x8) that we are running into the VM load balancing across the processors thus causing more latency than we experience on the multiple machines config. Course I could be wrong :) But, I digress, what I'm really interested in is what others experiences have been with hardware setups and hosting? - Jeremy On Fri, Apr 20, 2012 at 12:04 PM, Tim Caswell t...@creationix.com wrote: Jeremy, are you saying that 3 node processes on three dedicated machines is faster than one node process on one beefy machine? If you want to use all n cores on a machine you need n node processes on that machine. And yes, node is mostly single threaded. Some things like fs.* and zlib.* use a thread-pool so that they don't block the main thread, but your js code will always run in the main thread. On Fri, Apr 20, 2012 at 12:00 PM, Ryan Schmidt google-2...@ryandesign.com wrote: On Apr 20, 2012, at 07:40, Jeremy Darling wrote: Just curious what experiences others have had with hardware and hosting multi-process Node app stacks using MongoDB (or similar)? So far my testing has shown that a cluster of smaller (3 - i5's with 8GB Ram and 120GB SSD's) machines out performs a single massive server (4x4 with 64GB Ram and 120GB NAS fiber attached storage). This isn't too surprising It is to me.. why would that be the case? since node basically allocates a single core per running process, What do you mean? I didn't think node allocates anything; I thought *you* allocate node processes by using cluster to start as many of them as is appropriate for the size of your server. -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
[nodejs] Opinions on self hosting stacks for Node apps
Just curious what experiences others have had with hardware and hosting multi-process Node app stacks using MongoDB (or similar)? So far my testing has shown that a cluster of smaller (3 - i5's with 8GB Ram and 120GB SSD's) machines out performs a single massive server (4x4 with 64GB Ram and 120GB NAS fiber attached storage). This isn't too surprising since node basically allocates a single core per running process, but have others seen the same results? I know core speed will make a difference and other things come into play but what are the basic experiences, have I just been lucky so far? Also, what is the best OS flavor to run for best support across libraries and other such things? So far I've tried MS Windows 2008 Server, Windows 7 Enterprise, and RHEL. Curious about best Linux flavor more than anything, experiences with one being any better than another, better support for install (RHEL sucks to install into) etc, etc, etc? Thanks for any feedback, - Jeremy -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
Re: [nodejs] Opinions on self hosting stacks for Node apps
Regarding OS, I'd go with either a modern linux or solaris. Joyent has their own solaris version (SmartOS). I believe it's possible to download it and put it on your own hardware as well. The big advantage of using solaris is you get dtrace support. OSX has some dtrace too if you want a pretty graphical interface. If you want raw power and throughput, linux is hard to beat. The most popular (and thus most widely tested) is probably Ubuntu. Though node statically bundles most it's libraries if you build from source, so it doesn't really matter what linux as long as the kernel and libc are new enough. There is also an ubuntu ppa if you want pre-built binaries and easy upgrades using dpkg. On Fri, Apr 20, 2012 at 7:40 AM, Jeremy Darling jeremy.darl...@gmail.comwrote: Just curious what experiences others have had with hardware and hosting multi-process Node app stacks using MongoDB (or similar)? So far my testing has shown that a cluster of smaller (3 - i5's with 8GB Ram and 120GB SSD's) machines out performs a single massive server (4x4 with 64GB Ram and 120GB NAS fiber attached storage). This isn't too surprising since node basically allocates a single core per running process, but have others seen the same results? I know core speed will make a difference and other things come into play but what are the basic experiences, have I just been lucky so far? Also, what is the best OS flavor to run for best support across libraries and other such things? So far I've tried MS Windows 2008 Server, Windows 7 Enterprise, and RHEL. Curious about best Linux flavor more than anything, experiences with one being any better than another, better support for install (RHEL sucks to install into) etc, etc, etc? Thanks for any feedback, - Jeremy -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
Re: [nodejs] Opinions on self hosting stacks for Node apps
Trusted NodeJS PPAs? Can you send us the link? -- Att, Alan Hoffmeister 2012/4/20 Tim Caswell t...@creationix.com: Regarding OS, I'd go with either a modern linux or solaris. Joyent has their own solaris version (SmartOS). I believe it's possible to download it and put it on your own hardware as well. The big advantage of using solaris is you get dtrace support. OSX has some dtrace too if you want a pretty graphical interface. If you want raw power and throughput, linux is hard to beat. The most popular (and thus most widely tested) is probably Ubuntu. Though node statically bundles most it's libraries if you build from source, so it doesn't really matter what linux as long as the kernel and libc are new enough. There is also an ubuntu ppa if you want pre-built binaries and easy upgrades using dpkg. On Fri, Apr 20, 2012 at 7:40 AM, Jeremy Darling jeremy.darl...@gmail.com wrote: Just curious what experiences others have had with hardware and hosting multi-process Node app stacks using MongoDB (or similar)? So far my testing has shown that a cluster of smaller (3 - i5's with 8GB Ram and 120GB SSD's) machines out performs a single massive server (4x4 with 64GB Ram and 120GB NAS fiber attached storage). This isn't too surprising since node basically allocates a single core per running process, but have others seen the same results? I know core speed will make a difference and other things come into play but what are the basic experiences, have I just been lucky so far? Also, what is the best OS flavor to run for best support across libraries and other such things? So far I've tried MS Windows 2008 Server, Windows 7 Enterprise, and RHEL. Curious about best Linux flavor more than anything, experiences with one being any better than another, better support for install (RHEL sucks to install into) etc, etc, etc? Thanks for any feedback, - Jeremy -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
Re: [nodejs] Opinions on self hosting stacks for Node apps
I don't know how trusted they are, but it's documented on the node wiki: https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager Also debian and ubuntu's official nodejs package are usually not too out of date. Ubuntu 12.04 which comes out this month has 0.6.12 for example. On Fri, Apr 20, 2012 at 11:10 AM, Alan Hoffmeister alanhoffmeis...@gmail.com wrote: Trusted NodeJS PPAs? Can you send us the link? -- Att, Alan Hoffmeister 2012/4/20 Tim Caswell t...@creationix.com: Regarding OS, I'd go with either a modern linux or solaris. Joyent has their own solaris version (SmartOS). I believe it's possible to download it and put it on your own hardware as well. The big advantage of using solaris is you get dtrace support. OSX has some dtrace too if you want a pretty graphical interface. If you want raw power and throughput, linux is hard to beat. The most popular (and thus most widely tested) is probably Ubuntu. Though node statically bundles most it's libraries if you build from source, so it doesn't really matter what linux as long as the kernel and libc are new enough. There is also an ubuntu ppa if you want pre-built binaries and easy upgrades using dpkg. On Fri, Apr 20, 2012 at 7:40 AM, Jeremy Darling jeremy.darl...@gmail.com wrote: Just curious what experiences others have had with hardware and hosting multi-process Node app stacks using MongoDB (or similar)? So far my testing has shown that a cluster of smaller (3 - i5's with 8GB Ram and 120GB SSD's) machines out performs a single massive server (4x4 with 64GB Ram and 120GB NAS fiber attached storage). This isn't too surprising since node basically allocates a single core per running process, but have others seen the same results? I know core speed will make a difference and other things come into play but what are the basic experiences, have I just been lucky so far? Also, what is the best OS flavor to run for best support across libraries and other such things? So far I've tried MS Windows 2008 Server, Windows 7 Enterprise, and RHEL. Curious about best Linux flavor more than anything, experiences with one being any better than another, better support for install (RHEL sucks to install into) etc, etc, etc? Thanks for any feedback, - Jeremy -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
Re: [nodejs] Opinions on self hosting stacks for Node apps
On Apr 20, 2012, at 07:40, Jeremy Darling wrote: Just curious what experiences others have had with hardware and hosting multi-process Node app stacks using MongoDB (or similar)? So far my testing has shown that a cluster of smaller (3 - i5's with 8GB Ram and 120GB SSD's) machines out performs a single massive server (4x4 with 64GB Ram and 120GB NAS fiber attached storage). This isn't too surprising It is to me.. why would that be the case? since node basically allocates a single core per running process, What do you mean? I didn't think node allocates anything; I thought *you* allocate node processes by using cluster to start as many of them as is appropriate for the size of your server. -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
Re: [nodejs] Opinions on self hosting stacks for Node apps
Jeremy, are you saying that 3 node processes on three dedicated machines is faster than one node process on one beefy machine? If you want to use all n cores on a machine you need n node processes on that machine. And yes, node is mostly single threaded. Some things like fs.* and zlib.* use a thread-pool so that they don't block the main thread, but your js code will always run in the main thread. On Fri, Apr 20, 2012 at 12:00 PM, Ryan Schmidt google-2...@ryandesign.comwrote: On Apr 20, 2012, at 07:40, Jeremy Darling wrote: Just curious what experiences others have had with hardware and hosting multi-process Node app stacks using MongoDB (or similar)? So far my testing has shown that a cluster of smaller (3 - i5's with 8GB Ram and 120GB SSD's) machines out performs a single massive server (4x4 with 64GB Ram and 120GB NAS fiber attached storage). This isn't too surprising It is to me.. why would that be the case? since node basically allocates a single core per running process, What do you mean? I didn't think node allocates anything; I thought *you* allocate node processes by using cluster to start as many of them as is appropriate for the size of your server. -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en