Articles of joyent

使用MDB调查NodeJS内存泄漏,umem没有加载到地址空间中

我在CentOS上运行了一个nodejs进程。 我正在跟随这个从Joyent的这个 turotials使用MDB调查潜在的内存泄漏。 我生成了核心文件并上传到Manta。 因此,我开始mlogin和MDB。 在MDB中,我执行::findleaks并产生这个错误 > ::dmods libumem.so mdb mdb_kb mdb_kproc mdb_kvm mdb_proc mdb_raw v8 > ::findleaks mdb: findleaks: umem is not loaded in the address space 在CentOS以外的其他操作系统上运行nodejs进程是不可能的。 错误是否意味着核心转储中缺less一些信息? 如何解决这个问题?

在HTTP签名中,我应该使用“请求行”还是“目标请求”?

我正在查看Readme.md作为Joyent的node-http-signature模块的一部分,它使用“特殊名称”将HTTP请求目标包含到签名库中: 要在签名计算中包含HTTP请求行,请使用特殊的请求行值。 虽然这在HTTP语言中重载了标题的定义,但是在RFC 2616中定义了请求行,并且在有用的签名计算中作为标题的exception值,简单地使用请求行比单独添加一个单独的参数更简单它。 包括request-line意味着包括POST /url/path/here HTTP/1.1文本到签名库。 相反,规范03草案说,使用不同的“特殊价值”来包含要求的目标: 如果头域名称是(request-target)则通过连接小写:方法,ASCII空间和:path伪头文件来生成头域值 是的,(请求 – 目标)在parens。 对于前者,请求的签名基础可能如下所示: POST /foo HTTP/1.1 + "\n" date: Tue, 07 Jun 2011 20:51:35 GMT + "\n" content-type: application/json + "\n" content-md5: h0auK8hnYJKmHTLhKtMTkQ== 而对于后者,同一请求的签名基础将如下所示: (request-target): POST /foo + "\n" date: Tue, 07 Jun 2011 20:51:35 GMT + "\n" content-type: application/json + "\n" content-md5: h0auK8hnYJKmHTLhKtMTkQ== 那么哪个是权威? […]

NodeJS集群意外的assert.AssertionError

我正面临一个奇怪的错误,这是我的主要.js文件 var cluster = require('cluster'), express = require('express'), http = require('http'); if (cluster.isMaster) { var cpuCount = require('os').cpus().length; for (var i = 0; i < cpuCount; i += 1) { cluster.fork(); } } else { var app = express(), server = http.createServer(app), io = require('socket.io').listen(server); io.set('log level', 2); server.listen(3000); } cluster.on('exit', function (worker) { console.log('Worker […]

运行Ghost博客作为节点http-server上运行的网站的子文件夹

首先,请原谅我对Joyent的智能机器事件缺乏了解。 我正在这种情况下运行NodeJS的免费开发层smartmachine实例。 我正在通过http-server在文件系统上的[path]/server/public/上运行一个网站,并且我希望在端口80上同时在[path]/server/public/blog/上运行一个Ghost博客。 这可能吗? 我将如何完成它?

在部署Node.js Web应用程序时,最重要的统计数据是什么?

首先 – 关于我的背景一点点:我已经编程了一段时间(在这一点上是10年),而且在编写想法时,我相当有能力。 一年前,我开始从事networking应用程序的编程工作,并且幸运地发现了nodeJS,这使得networking应用程序的创build更像传统编程。 现在,我有一个node.js应用程序,我已经开发了一段时间,现在正在运行在网上生产。 我的主要困惑源于这样一个事实,即我对networking开发的世界很陌生,并且不知道在监视我的应用程序时什么是重要的,什么是不重要的。 我正在使用Joyent SmartMachine,查看他们提供的分析选项有点压倒性。 有很多不同的选项和configuration,我不知道每个分析的目的是什么。 对于下面的问题,我会很感激任何答案,无论是Joyent的云分析还是全面的一般。 问题一 现在,我主要关心的是弄清楚我的应用程序如何利用运行的服务器。 我想知道我的应用程序是否有足够的资源分配给它。 它收到的请求的数量是否使服务器过度杀伤,还是需要额外的资源? 什么分析是非常重要的,以便为此目的查看NodeJS应用程序? (如果这种做法有所不同,则可以在不同的服务器上同时使用MongoDB和Redis) 问题二 在pipe理正在生产的服务器时,还有哪些其他统计数据通常非常重要? 我习惯于运行一次程序来执行一些特定的事情(例如,一旦它计算出图像,就结束运行的光线跟踪器),而不是连续运行并与许多客户端交互的networking应用程序。 我敢肯定有很多事情对于长期服务器pipe理员来说是显而易见的,而不是像我这样的新手。 问题三 在处理NodeJS时要特别注意什么? 当处理NodeJS的单线程事件循环与更标准的服务器系统时,什么是统计/分析变得特别重要? 我还有其他关于数据库如何进入等式的问题,但我认为现在已经足够了…

validation我的node.js实例是开发还是生产

现在,无论何时我想将node.js服务器部署到生产服务器,我都需要更改所有IP / DNS /用户名/密码,以便连接到我的数据库和外部API。 这个过程是烦人的,有没有办法来validation当前正在运行的node.js实例是在cloud9ide还是实际上我的生产joyent smartmachine? 如果我能够(在我的运行代码中)运行我的node.js实例的服务器,我将添加一个条件,将值设置为prod或dev。 谢谢