Anthony, Thanks so much for the tests!
These are very helpful, :) Regards, Doug On Apr 2, 4:56 am, Anthony Catel <[email protected]> wrote: > Hi Doug, > > I've been running the test during 12 hours with : > > - 4 users connected > - 5 messages second (with your script running in a while(1){sleep(1) }). > > It still working but take 0.4% on my 6GB memory (which is may be not > normal). > > Anyway, the problem may be a garbage collection issue with the > javascript engine. > I'll do more test this night (more user, more messages) ;) > > Le 01/04/2011 19:41, Doug a crit : > > > > > > > > > Anthony, > > > Excellent, sounds good, we're using a 32-bit platform. > > > Looking forward to hearing from you, > > Doug > > > On Apr 1, 11:25 am,<[email protected]> wrote: > >> Thanks ;) > >> I'll run the same test tonight. I give you my results tomorrow ;) > > >> oh and BTW 32 or 64bits ? > > >> Thanks > > >> On Fri, 1 Apr 2011 10:21:57 -0700 (PDT), Doug<[email protected]> > >> wrote: > > >>> Anthony, > >>> Well a similar situation was happening with APE 1.0. APE's process > >>> would slowly increase and eventually it reach a certain point (around > >>> 15% to 20%). At this point, I would attempt to post and it would > >>> return "UNKNOWN CHANNEL" which would normally happen when nobody is > >>> listening to that channel. Usually it took about 6-8 hours to reach > >>> this point. > >>> Under 1.1.0, it appears to be a similar time frame, (perhaps a little > >>> longer ~10 to ~12 hours) and the memory consumption is much lower > >>> (around 1.9%), however at this point a post-attempt will return > >>> "BAD_PARAMS." > >>> The test I conducted with 1.1.0 was about ten posts a second, but > >>> under the 1.0 version the traffic was much heavier, probably around > >>> 100 a second. 1.0 seemed to handle this really well, I automatically > >>> restarted the 1.0 server every 6 hours and it definitely did the job. > >>> Thank you, > >>> Doug > >>> On Apr 1, 9:35 am,<[email protected]> wrote: > >>>> Ok, so you didn't have this issue with APE 1.0 ? > >>>> How many messages do you send before encoutering it ? > >>>> Thanks > >>>> On Fri, 1 Apr 2011 08:31:37 -0700 (PDT), Doug > >> <[email protected]> > > >>>> wrote: > >>>>> Anthony, > >>>>> I haven't changed any of the other APE server script, just what I got > >>>>> from you in the 1.1.0 release. Perhaps I could turn some more logging > >>>>> on to debug some more? > >>>>> Thanks for your hard work on this project, > >>>>> Regards, > >>>>> Doug > >>>>> On Mar 31, 3:13 pm, Doug<[email protected]> wrote: > >>>>>> I'm sorry I must have misunderstood, the way I am sending the events > >>>>>> is through a PHP script similar to the one that I found on APE's > >>>>>> website that does a single POST: > >>>>>> <?php > >>>>>> $c=0; > >>>>>> while($c<= 5) { > >>>>>> $APEserver = 'http://mydomain:6969/?'; > >>>>>> $APEPassword = 'mypasswd'; > >>>>>> $messages = array( > >>>>>> 'Test Message', > >>>>>> 'test2', > >>>>>> 'test3', > >>>>>> ); > >>>>>> $cmd = array(array( > >>>>>> 'cmd' => 'inlinepush', > >>>>>> 'params' => array( > >>>>>> 'password' => $APEPassword, > >>>>>> 'raw' => 'DATA', > >>>>>> 'channel' => 'mychannelname', > >>>>>> 'data' => array( //Note: data can't be a string > >>>>>> 'message' => $messages[array_rand($messages)] > >>>>>> ) > >>>>>> ) > >>>>>> )); > >>>>>> echo "<br><br>".json_encode($cmd)."<br><br>"; > >>>>>> var_dump($APEserver.rawurlencode(json_encode($cmd))); > >>>>>> $data = > >>>>>> file_get_contents($APEserver.rawurlencode(json_encode($cmd))); > >>>>>> $data = json_decode($data, TRUE); > >>>>>> if ($data[0]->data->value == 'ok') { > >>>>>> echo 'Message sent!'; > >>>>>> } else { > >>>>>> //echo 'Error sending message, server response is :<pre>'. > >>>>>> print_r($data); > >>>>>> echo '</pre>'; > >>>>>> } > >>>>>> $c++; > >>>>>> } > >>>>>> ?> > >>>>>> This is the page that tells me "ok" sending the message until the > >>>>>> server reaches 1.9% and then it returns BAD_PARAMS, the listening > >> page > >>>>>> doesn't seem aware of any problems. > >>>>>> Thank you, regards, > >>>>>> Doug > >>>>>> On Mar 31, 2:51 pm, Anthony Catel<[email protected]> wrote: > >>>>>>> So, If I understand correctly, at the begening everything works > >> fine > >>>>>>> and > >>>>>>> sudently stop working with a "BAD_PARAMS". > >>>>>>> You don't have any server-side script? > >>>>>>> Le 31/03/2011 22:05, Doug a crit : > >>>>>>>> Hi Anthony, > >>>>>>>> Thanks for the response, I am testing with 4 concurrent users. > >>>>>>>> I am working with a Fedora, Amazon Linux AMI, EC2 instance, > >> here's > >>>>>>>> some specs: > >>>>>>>> Small Instance default* > >>>>>>>> 1.7 GB memory > >>>>>>>> 1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit) > >>>>>>>> 160 GB instance storage > >>>>>>>> 32-bit platform > >>>>>>>> I/O Performance: Moderate > >>>>>>>> API name: m1.small > >>>>>>>> I have added a function that wraps the APE.Client(); code (I > >> only > >>>> run > >>>>>>>> startRT() from the listener page): > >>>>>>>> function startRT(channel, callback) { > >>>>>>>> var client = new APE.Client(); > >>>>>>>> client.load(); > >>>>>>>> client.addEvent('load', function() { > >>>>>>>> client.core.start(); > >>>>>>>> }); > >>>>>>>> client.addEvent('ready', function() { > >>>>>>>> myJoin(client , channel); > >>>>>>>> client.onRaw('data', function(raw, pipe) { > >>>>>>>> callback(raw.data); > >>>>>>>> }); > >>>>>>>> }); > >>>>>>>> return client; > >>>>>>>> } > >>>>>>>> function myJoin(client, channel) { > >>>>>>>> if(isArray(channel) == false) { > >>>>>>>> channel = removeNonAlphas(channel); > >>>>>>>> client.core.join(channel); > >>>>>>>> } > >>>>>>>> else { > >>>>>>>> for (var i in channel) { > >>>>>>>> channel[i] = removeNonAlphas(channel[i]); > >>>>>>>> } > >>>>>>>> client.core.join(channel); > >>>>>>>> } > >>>>>>>> var channelpipe = channel.toLowerCase(); > >>>>>>>> } > >>>>>>>> function removeNonAlphas(channel){ > >>>>>>>> channel = channel.replace(/[^a-zA-Z 0-9]+/g,''); > >>>>>>>> return channel; > >>>>>>>> } > >>>>>>>> function isArray(obj) { > >>>>>>>> if (obj.constructor.toString().indexOf("Array") == -1) > >>>>>>>> return false; > >>>>>>>> else > >>>>>>>> return true; > >>>>>>>> } > >>>>>>>> Thank you! > >>>>>>>> On Mar 31, 11:51 am, Anthony Catel<[email protected]> wrote: > >>>>>>>>> Hi doog, > >>>>>>>>> You don't have any custom server-side javascript? > >>>>>>>>> How many concurent users do you have? > >>>>>>>>> What is your CPU architecture? > >>>>>>>>> Thanks > >>>>>>>>> Le 31/03/2011 19:18, Doug a crit : > >>>>>>>>>> I've been experimenting with the new APE 1.1.0, and it appears > >>>>>>>>>> that it > >>>>>>>>>> works until memory consumption of the aped process reaches > >> 1.9% > >>>> and > >>>>>>>>>> then whenever I attempt to post some data I get > >>>>>>>>>> Array ( [time] => 1301590992 [raw] => ERR [data] => > >>>> Array > >>>>>>>>>> ( [code] => > >>>>>>>>>> 001 [value] => BAD_PARAMS ) ) ) > >>>>>>>>>> I can open a channel and I see this in ape.log: > >>>>>>>>>> 2011-03-30 15:58:21 - src/users.c:180 - New user - (ip : > >>>>>>>>>> 2.my.ip.69) > >>>>>>>>>> So it appears to recognize that somebody has joined the > >> channel > >>>>>>>>>> and is > >>>>>>>>>> listening. Also, the page I have set up that listens to the > >>>> channel > >>>>>>>>>> sends no errors, it includes the js file and its allocated a > >>>>>>>>>> numbered > >>>>>>>>>> subdomain like it should (4.mydomain.com, for example). > >>>>>>>>>> My main.ape.js looks like this: > >>>>>>>>>> Ape.addEvent("init", function() { > >>>>>>>>>> include("framework/mootools.js"); > >>>>>>>>>> include("framework/Http.js"); > >>>>>>>>>> //include("framework/userslist.js"); > >>>>>>>>>> include("utils/utils.js"); > >>>>>>>>>> include("commands/proxy.js"); > >>>>>>>>>> include("commands/inlinepush.js"); > >>>>>>>>>> //include("examples/nickname.js"); > >>>>>>>>>> //include("examples/move.js"); > >>>>>>>>>> //include("utils/checkTool.js"); //Just needed for the APE > >>>> JSF > >>>>>>>>>> diagnostic tool, once APE is installed you can remove it > >>>>>>>>>> //include("examples/ircserver.js"); > >>>>>>>>>> //include("framework/http_auth.js"); > >>>>>>>>>> }); > >>>>>>>>>> I've commented out some stuff that I didn't think I needed. > >> This > >>>>>>>>>> configuration works on an earlier installation (1.01a I > >>>>>>>>>> believe). > >>>>>>>>>> The > >>>>>>>>>> problem with the earlier version is memory consumption, but it > >>>>>>>>>> seems > >>>>>>>>>> to happen at a higher percentage (round about 15-20%). > >>>>>>>>>> I have tried using the older JSF and the newest one I could > >> find > >>>> on > >>>>>>>>>> github, behavior appears to be identical. > >>>>>>>>>> I have fixed the older installation by running a cronjob every > >> 6 > >>>>>>>>>> hours > >>>>>>>>>> to restart the ape process. > >>>>>>>>>> Any advice or suggestions would be a huge help, thank you! -- You received this message because you are subscribed to the Google Groups "APE Project" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/ape-project?hl=en --- APE Project (Ajax Push Engine) Official website : http://www.ape-project.org/ Git Hub : http://github.com/APE-Project/
