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/

Reply via email to