Hi Charly,
missing some details.
1.) OS Version
2.) Kernel Version
3.) mojo version.
4.) Do you use cpan(m) to install the lastest version or are you using OS
packages ?
I had similar problems but switched to a new mojo version and latest EV. (
cpanm EV).
For EV it should be kernel > 4.5
It seems that you started your app via daemon.
Try to use hypnotoad and check if there are changes. (got to the base dir
and enter hypnotoad -f script/yourscript).
Some hints about reading and writing to a process.
I use Mojo::IOLoop::ReadWriteFork togehter with the delay helper
($c->delay), which works perfectly.
Perhaps it's this your're looking for.
Rgds.
Hans
Am Donnerstag, 29. Juni 2017 16:10:46 UTC+2 schrieb Charlie Brady:
>
>
> On Thu, 29 Jun 2017, Jan Henning Thorsen wrote:
>
> > Hey,
> >
> > It doesn't look like "daemon" mode. It looks like you used "morbo" to
> start
> > the application.
>
> I don't know what makes you say that. I definitely was using "daemon" mode
> and was not using "morbo".
>
> I didn't track down exactly what code was making the difference in the
> poll timeout, but worked out that it was somewhere in the CGI plugin. I've
> eliminated the CGI plugin and now find that the poll timeout is back to
> 1000 ms, which a corresponding reduction in idle CPU.
>
> I don't know exactly where the fork() was which lead to the pair of
> processes. I did have some code with an open() reading from a pipe, but I
> wouldn't expect to see poll() in the child process in that case.
>
> Mystery not quite solved, but now that I am not using the CGI plugin I at
> least don't have an ongoing problem.
>
> Thanks for commenting. If you want to try to identify the problem with the
> CGI plugin I can re-insert that code.
>
> >
> >
> > On Wednesday, June 14, 2017 at 11:11:31 PM UTC+2, Charlie Brady wrote:
> > >
> > >
> > > I'm running a Mojolicious UI in daemon mode on a PowerPC embedded
> system
> > > (running Wind River Linux, perl 5.22.0, kernel 4.1.21) and notice
> > > surprisingly high CPU usage on a totally idle UI.
> > >
> > > I can see that there are two processes. Each process is in a polling
> loop
> > > with 10ms timeout. I don't expect to see two processes here, so I
> wonder
> > > whether this is normal or abnormal behaviour. If it is normal
> behaviour,
> > > can I tune down the 10ms timeout to something longer? I would like to
> see
> > > the process block until there is actual work to do.
> > >
> > > root@10:/service# ps fax | grep index.daemon-5
> > > 1418 pts/1 S+ 0:00 \_ grep index.daemon
> > > 19303 ? Ssl 24:24 /etc/e-smith/web/functions/index.daemon.cgi
> > > 24397 ? Ssl 20:54 \_
> /etc/e-smith/web/functions/index.daemon.cgi
> > > root@10:/service# strace -p19303 -tt 2>&1 | head -5
> > > Process 19303 attached
> > > 17:05:08.095154 restart_syscall(<... resuming interrupted call ...>) =
> 0
> > > 17:05:08.104465 poll([{fd=21, events=POLLIN|POLLPRI|POLLOUT}], 1, 9) =
> 0
> > > (Timeout)
> > > 17:05:08.116478 poll([{fd=21, events=POLLIN|POLLPRI|POLLOUT}], 1, 10)
> = 0
> > > (Timeout)
> > > 17:05:08.130120 poll([{fd=21, events=POLLIN|POLLPRI|POLLOUT}], 1, 9) =
> 0
> > > (Timeout)
> > > root@10:/service# strace -p24397 -tt 2>&1 | head -5
> > > Process 24397 attached
> > > 17:05:12.888643 restart_syscall(<... resuming interrupted call ...>) =
> 0
> > > 17:05:12.894814 poll([{fd=21, events=POLLIN|POLLPRI|POLLOUT}], 1, 10)
> = 0
> > > (Timeout)
> > > 17:05:12.908082 poll([{fd=21, events=POLLIN|POLLPRI|POLLOUT}], 1, 10)
> = 0
> > > (Timeout)
> > > 17:05:12.920771 poll([{fd=21, events=POLLIN|POLLPRI|POLLOUT}], 1, 10)
> = 0
> > > (Timeout)
> > > root@10:/service# top | head -12
> > > top - 17:09:31 up 9 days, 7:59, 4 users, load average: 0.73, 0.59,
> 0.60
> > > Tasks: 98 total, 1 running, 95 sleeping, 0 stopped, 2 zombie
> > > %Cpu(s): 12.9 us, 5.7 sy, 3.8 ni, 75.7 id, 1.8 wa, 0.0 hi, 0.1
> si,
> > > 0.0 st
> > > KiB Mem : 995536 total, 5428 free, 317100 used, 673008
> > > buff/cache
> > > KiB Swap: 65532 total, 65448 free, 84 used. 594360 avail
> Mem
> > >
> > > PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+
> COMMAND
> > >
> > > 1440 root 20 0 3852 2280 1924 R 24.0 0.2 0:00.13 top
>
> > >
> > > 508 root 20 0 134908 69156 13896 S 12.0 6.9 465:50.05
> > > call_control
> > > 19303 root 20 0 87812 37720 4148 S 8.0 3.8 24:45.37
> > > /etc/e-smith/we
> > > 24397 root 20 0 87788 37184 3552 S 8.0 3.7 21:13.65
> > > /etc/e-smith/we
> > > 425 root 20 0 16068 10284 3640 S 4.0 1.0 33:32.22
> snmpd
> > >
> > >
> >
>
--
You received this message because you are subscribed to the Google Groups
"Mojolicious" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/mojolicious.
For more options, visit https://groups.google.com/d/optout.