I have big problem with exports._unrefActive.
It's been a long time since I worked on these fixes, and I can't provide you with any guarantee today that they won't break anything today.
Before running with either one of these fixes on production servers, you should at least (and after you applied one of these changes) run the whole tests suite that comes with Node.js' source code.
To run these tests, you could run:
$ make test test-pummel test-internet test-timers
It would take some time to run, but it should give you a pretty good idea if anything obvious was broken by merging one of these fixes. Some tests might fail. In this case please let us know and we should be able to tell you if these failures are actual issues.
Theoretically, the unsorted list implementation performs better if you don't fall into the pathological case of having a lot of connections timing out one after another in very short intervals.
The heap implementation's performance is slightly less good than the unordered list implementation, however its worst case performs better than the unordered list worst case. If the CPU usage of running the heap implementation is good enough, it would probably be your safest bet.
However, as proposed in this issue: https://github.com/joyent/ node/issues/8160, we may include the unordered list implementation in the next 0.10 relase (0.10.34). Thus going for the unordered list fix would probably be a better choice since you wouldn't diverge from what's going to be the next stable release. The reason why we would be including the unordered list implementation and *not* the heap implementation in the next release is that the heap internal module used by the current heap implementation cannot be included as is. There are some design issues to consider before we can integrate it.
In other words, what I suggest is that you go with the unordered list implementation for now and subscribe to this issue:https://github.com/joyent/ node/issues/8160. If we end up including the unordered list implementation in 0.10.34, you'll have the same behavior when you upgrade.
Does that make sense?
Let's wait to see if we can land the unordered list implementation in 0.10.34. In the meantime, please let us know if you have any issue running your code with the unordered list fix.
Thank you very much for your help!
When i have about 2K connections in my app. exports._unrefActivestarts loading the CPU
I asked about it one year ago https://github.com/joyent/ node/issues/6447
And here is issue about it:
But the problem is not solved yet.
I do not know why do I need exports._unrefActive.
I just know that before version 0.10.8(there is not _unrefActive) everything was working well.
I can not install an earlier version, because i have memory leak on it.
How can i fix it? Any advice.
Hi,
On Wednesday, October 22, 2014 6:21:48 AM UTC-7, Sergei wrote:
Have you tried the implementations available in the branches mentioned here: https://github.com/joyent/ node/wiki/Optimizing-_ unrefActive#using-an-unsorted- array and here:https://github.com/joyent/ node/wiki/Optimizing-_ unrefActive#using-a-heap? I'm interested in your feedback.
These branches have not been updated with latest changes of the branches they respectively track. If that makes trying them difficult, please let me know and I'll update them.
https://github.com/joyent/ node/wiki/Optimizing-_ unrefActive should make the need for _unrefActive clear. If it's not clear, please let us know how we can improve this page.
Thank you, and feel free to come chat with us on #libuv if you'd like to discuss this further.
On Wednesday, October 22, 2014 6:21:48 AM UTC-7, Sergei wrote:
I use node 0.10.30 on CentOS release 6.5 (Final).I have big problem with exports._unrefActive.When i have about 2K connections in my app. exports._unrefActivestarts loading the CPUI asked about it one year ago https://github.com/joyent/node/issues/6447 And here is issue about it:But the problem is not solved yet.
Have you tried the implementations available in the branches mentioned here: https://github.com/joyent/
These branches have not been updated with latest changes of the branches they respectively track. If that makes trying them difficult, please let me know and I'll update them.
I do not know why do I need exports._unrefActive.
https://github.com/joyent/
Thank you, and feel free to come chat with us on #libuv if you'd like to discuss this further.
Thanks for the answer.
I did tests.
I have another one nodejs app. And I made tests on it.
This nodejs app isn't HTTP server. It is game server.
It is realtime server where users keep the connection during all time they are playing.
There is CentOS release 6.5 (Final) on server.
I run these node versions:
v0.10.7
v0.10.30
v0.10.fix Using an unsorted array
v0.10.fix Using a heap
on 3K-3.5K connections.
There are results in attach.
v0.10.30 + 3K connections loaded CPU at 100%.
v0.10.fix Using an unsorted array has a little bit better performance then v0.10.fix Using a heap. It seems to me.
Can i use v0.10.fix Using an unsorted array or v0.10.fix Using a heap on production servers?
How do you think - what implementation is better in my case?
What else can I help?
I did tests.I have another one nodejs app. And I made tests on it.This nodejs app isn't HTTP server. It is game server.It is realtime server where users keep the connection during all time they are playing.There is CentOS release 6.5 (Final) on server.I run these node versions:v0.10.7v0.10.30v0.10.fix Using an unsorted arrayv0.10.fix Using a heapon 3K-3.5K connections.There are results in attach.v0.10.30 + 3K connections loaded CPU at 100%.v0.10.fix Using an unsorted array has a little bit better performance then v0.10.fix Using a heap. It seems to me.Can i use v0.10.fix Using an unsorted array or v0.10.fix Using a heap on production servers?
It's been a long time since I worked on these fixes, and I can't provide you with any guarantee today that they won't break anything today.
Before running with either one of these fixes on production servers, you should at least (and after you applied one of these changes) run the whole tests suite that comes with Node.js' source code.
To run these tests, you could run:
$ make test test-pummel test-internet test-timers
It would take some time to run, but it should give you a pretty good idea if anything obvious was broken by merging one of these fixes. Some tests might fail. In this case please let us know and we should be able to tell you if these failures are actual issues.
How do you think - what implementation is better in my case?
Theoretically, the unsorted list implementation performs better if you don't fall into the pathological case of having a lot of connections timing out one after another in very short intervals.
The heap implementation's performance is slightly less good than the unordered list implementation, however its worst case performs better than the unordered list worst case. If the CPU usage of running the heap implementation is good enough, it would probably be your safest bet.
However, as proposed in this issue: https://github.com/joyent/
In other words, what I suggest is that you go with the unordered list implementation for now and subscribe to this issue:https://github.com/joyent/
Does that make sense?
What else can I help?
Let's wait to see if we can land the unordered list implementation in 0.10.34. In the meantime, please let us know if you have any issue running your code with the unordered list fix.
Thank you very much for your help!
Let's wait to see if we can land the unordered list implementation in 0.10.34. In the meantime, please let us know if you have any issue running your code with the unordered list fix.
Just a heads up to let you know that the latest stable release (0.10.34) includes the unordered list implementation. See http://blog.nodejs.org/ 2014/12/17/node-v0-10-34- stable/ for more info.
julien...@joyent.com wrote:Let's wait to see if we can land the unordered list implementation in 0.10.34. In the meantime, please let us know if you have any issue running your code with the unordered list fix.Just a heads up to let you know that the latest stable release (0.10.34) includes the unordered list implementation. See http://blog.nodejs.org/2014/12/17/node-v0-10-34-stable/ for more info.
Unfortunately this release has several issues:
It is not clear yet when these fixes will be released, hopefully we'll be able to communicate on this soon.
댓글 없음:
댓글 쓰기