[mythtv-users] Many instances of mythlogserver running and taking up 98% of CPU

Matthias.myth mythtv at thyroff.net
Mon Dec 3 18:58:41 UTC 2012


Am 02.12.2012 18:21, schrieb Bill Meek:
> On 12/02/2012 06:32 AM, Matthias.myth wrote:
>
> Hi;
>
> Summary; there are things below that can make the logging easier to 
> read, but
> the key issue is the multiple copies and abnormally high CPU usage. So 
> far, I
> don't see the answer to that.
>
> Comments in line.
>
>> thanks for your reply. I had read the entry in the wiki, but I did 
>> not really get much out of it.
>
> Sorry to hear that.
>
> You'd asked how the logserver is started, which others have asked. The 
> answer is in
> the Wiki, and the reasons for starting/stopping are there too. The 
> Wiki doesn't
> address how the various distributions elect to do their logging. It 
> does have links
> to options that could be used.
>
>> I also have few lines in the syslog:
>>
>> Dec  2 07:45:41 **** mythlogserver: mythlogserver[27342]: I 
>> LogForward loggingserver.cpp:1310 (forwardMessage) New Client:
>> 0092bb6f0a51854f99bf1e98ee4adbdb2f (#4)
>> Dec  2 08:11:30 **** mythlogserver: mythlogserver[27342]: I 
>> LogForward loggingserver.cpp:1204 (expireClients) Expiring client
>> 0092bb6f0a51854f99bf1e98ee4adbdb2f (#3)
>
> These entries are generated by mythlogserver itself. In the above, 
> note "mythlogserver:",
> that's the program name. everything after the ":" is the message for 
> the logfile. This is
> normal for 0.26 using --syslog.
>
> There is a way around this. See: 
> http://www.mythtv.org/wiki/Simple_rsyslog_Configuration.
> Be sure to see the 0.26 version halfway down the page. I tested it and 
> it works. Stop
> your backend and kill the logserver (or wait for it to time out in 5 
> minutes.) Then
> restart the backend.
>
> Or, you can replace "--syslog local7" in your 
> /etc/init/mythbackend.conf file with
> "--logpath /var/log/mythtv".
>
> I wouldn't suggest changing now, just had to write it for completeness.
>
>> But I have many lines in /var/log/mythtv/mythbackend.log, see at the 
>> end of this message.
>
> I deleted all but 1 line and moved it here:
>
> > Dec  2 11:02:28 ***** mythlogserver: mythbackend[27816]: N Expire 
> autoexpire.cpp:264 .....
>
> The program making the log entry is mythlogserver, its client is 
> mythbackend. This is not a problem.
> The rsyslog solution just mentioned cleans this up.
>
> (Thanks for pasting without line wrapping, wish everyone would do that)
>
>> I have also read the page about logging in the wiki; but 
>> unfortunately, the distribution-dependant information is (obviously) 
>> not here. So I
>> have checked, and I can find in /etc/init/mythbackend.conf, how 
>> mythbackend is started:
>>
>> /usr/bin/mythbackend --syslog local7 --user mythtv
>
> Correct, that's the only place the backend sets the logging. Unless
> Mythbuntu uses a wrapper script for the backend. It doesn't look like
> it from the "top" output you posted. Unless you typed the command
> manually (not using sudo start mythtv-backend.)
>
> Remember, as in the mythlogserver Wiki, the 1st program to run will kick
> off the logserver. I have used "mythshutdown --lock --nodblog --quiet" in
> my own .profile and when starting the machine, mythshutdown ran before
> mythbackend, so the logging was based on the parameters passed to
> mythshutdown. Unusual, but it happened.
>
>> About how I was finding the multiple copies: I have been looking at top:
>>
>> root@*****:/home/mth# top
>> Cpu(s): 96.7%us,  2.6%sy,  0.0%ni,  0.0%id,  0.0%wa, 0.0%hi, 0.7%si, 
>> 0.0%st
>>    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM TIME+ COMMAND
>>   1416 mythtv    20   0  202m  27m 2972 R  182  1.3 929:39.28 
>> mythlogserver
>> 27816 mythtv    20   0  516m  32m 6380 S    2  1.6 64:25.29 mythbackend
>> 15787 myth      20   0 1300m 537m  28m S    1 26.7 235:04.10 
>> mythfrontend.re
>> 27342 mythtv    20   0  326m 2500 1756 S    1  0.1 13:24.32 
>> mythlogserver
> ...
>>
>> You can see that at this moment, I have one process of mythlogserver 
>> going to 200%, if it can, and one with 1% CPU. That was different the 
>> last
>> times I looked, the crazy one would only go to 100%.... -> ?
>
> Now to the important part of your post. With the above and the next 
> ps, you should
> be able to look in your log files (both /var/log/syslog for 
> mythlogserver and
> /var/log/mythtv/myth*.log for *anything* else) to see who is starting up
> mythlogserver.
>
>> ps ax | grep mythlog will give me 2, like top at this moment:
> >
>>   1416 ?        Rsl  932:20 /usr/bin/mythlogserver --daemon --verbose 
>> general --loglevel info --quiet --syslog local7
>> 10290 pts/8    S+     0:00 grep mythlog
>> 27342 ?        Ssl   13:25 /usr/bin/mythlogserver --daemon --verbose 
>> general --loglevel info --syslog local7
>
> Recall from the Wiki that logserver's logging options are inherited 
> from the program that
> starts it. By now you probably guessed that I wrote the Wiki ;)
>
> Note that in PID 1416 the options include --quiet, but in PID 27342 
> --quiet is gone.
> That suggests logserver was started by different programs. The 2nd 
> instance probably
> by the line in mythtv-backend.conf. The 1st, ???
>
>> but ps axH will give me 16.
>
> 16 is the same as I have, I said 17 in my  previous post, but forgot 
> to exclude "grep mythlog".
>
>> In the top list you can see that it is the mythlogserver with id 
>> 1416, the oder one, which goes crazy. I tried a "killall 
>> mythlogserver", both
>> instances were killed and now I have only one process left, id 22346. 
>> I notice that, according to the process id and the time, the instance 
>> that
>> went mad seems to be quite old... but I had killall'ed them 
>> yesterday, too, with the load going back to normal, so I am not sure 
>> what this means.
>
> Neither do I. I've never had more than one logserver running.
>
> I'd have expected to see "sudo killall...", unless you're running as root
> (which I *rarely* do) or mythtv. Both instances of the logserver are 
> owned
> by mythtv. When this happens again, try using "kill <theOldPidNumber>" 
> rather
> than "killall...".
>
> But, I'd still try to figure out what process is starting the "mad" 
> logserver by
> looking at the timestamps in all the logs as mentioned above. Look for 
> text like:
>
>     Logger logging.cpp:488 (launchLogServer) - Starting mythlogserver
>
> They could be in any /var/log/mythtv/myth*.log file. Although that 
> again depends
> on your distribution. If you have /etc/rsyslog.d/40-mythtv.conf or 
> something like
> it and want to use pastebinit <filename>, put the link in a response 
> here.
>

Hello Bill,

thank you very much for your help! If I do not get much information (or 
at least, not the information I expect) out of the wiki post, that is 
probably because I do not know enough about how things work in myth... 
sorry for sounding negative...

I have checked for "Starting mythlogserver" entries in 
/var/log/mythtv/*.log files, and there are many. What I see is that, 
just by quickly looking at the results, there are cases where it has 
been started twice within periods of a few seconds, or even twice in the 
same second:

mythpreviewgen.log:Nov 30 23:40:47 ***** mythlogserver: 
mythpreviewgen[19343]: I Logger logging.cpp:487 (launchLogServer) 
Starting mythlogserver
mythpreviewgen.log:Nov 30 23:40:47 ***** mythlogserver: 
mythpreviewgen[19343]: I Logger logging.cpp:487 (launchLogServer) 
Starting mythlogserver
mythpreviewgen.log:Nov 30 23:40:49 ***** mythlogserver: 
mythpreviewgen[19365]: I Logger logging.cpp:487 (launchLogServer) 
Starting mythlogserver
mythpreviewgen.log:Nov 30 23:41:16 ***** mythlogserver: 
mythpreviewgen[19443]: I Logger logging.cpp:487 (launchLogServer) 
Starting mythlogserver
mythpreviewgen.log:Nov 30 23:43:10 ***** mythlogserver: 
mythpreviewgen[19520]: I Logger logging.cpp:487 (launchLogServer) 
Starting mythlogserver
mythpreviewgen.log:Dec  1 00:19:22 ***** mythlogserver: 
mythpreviewgen[19756]: I Logger logging.cpp:487 (launchLogServer) 
Starting mythlogserver
mythpreviewgen.log:Dec  1 00:21:46 ***** mythlogserver: 
mythpreviewgen[19903]: I Logger logging.cpp:487 (launchLogServer) 
Starting mythlogserver
... etc. and

mythmetadatalookup.log:Nov 23 17:01:33 ***** mythlogserver: 
mythmetadatalookup[3783]: I Logger logging.cpp:487 (launchLogServer) 
Starting mythlogserver
mythmetadatalookup.log:Nov 23 17:01:33 ***** mythlogserver: 
mythmetadatalookup[3783]: I Logger logging.cpp:487 (launchLogServer) 
Starting mythlogserver
or
mythmetadatalookup.log:Nov 28 17:40:03 ***** mythlogserver: 
mythmetadatalookup[25102]: I Logger logging.cpp:487 (launchLogServer) 
Starting mythlogserver
mythmetadatalookup.log:Nov 28 17:40:03 ***** mythlogserver: 
mythmetadatalookup[25102]: I Logger logging.cpp:487 (launchLogServer) 
Starting mythlogserver

and

mythcommflag.log:Dec  1 05:18:52 ***** mythlogserver: 
mythcommflag[21726]: I Logger logging.cpp:487 (launchLogServer) Starting 
mythlogserver
mythcommflag.log:Dec  1 05:19:59 ***** mythlogserver: 
mythcommflag[21726]: I Logger logging.cpp:487 (launchLogServer) Starting 
mythlogserver
mythcommflag.log:Dec  1 05:20:56 ***** mythlogserver: 
mythcommflag[21726]: I Logger logging.cpp:487 (launchLogServer) Starting 
mythlogserver
mythcommflag.log:Dec  1 05:25:47 ***** mythlogserver: 
mythcommflag[21726]: I Logger logging.cpp:487 (launchLogServer) Starting 
mythlogserver
mythcommflag.log:Dec  1 05:27:47 ***** mythlogserver: 
mythcommflag[21726]: I Logger logging.cpp:487 (launchLogServer) Starting 
mythlogserver
mythcommflag.log:Dec  1 05:28:57 ***** mythlogserver: 
mythcommflag[21726]: I Logger logging.cpp:487 (launchLogServer) Starting 
mythlogserver
mythcommflag.log:Dec  1 05:32:57 ***** mythlogserver: 
mythcommflag[21726]: I Logger logging.cpp:487 (launchLogServer) Starting 
mythlogserver

and here

mythbackend.log:Dec  1 04:59:20 ***** mythlogserver: mythbackend[13933]: 
I Logger logging.cpp:487 (launchLogServer) Starting mythlogserver
mythbackend.log:Dec  1 04:59:43 ***** mythlogserver: mythbackend[13933]: 
I Logger logging.cpp:487 (launchLogServer) Starting mythlogserver
mythbackend.log:Dec  1 05:01:37 ***** mythlogserver: mythbackend[13933]: 
I Logger logging.cpp:487 (launchLogServer) Starting mythlogserver

That should not happen, if I understand the wiki entry correctly, right?

Right now, my server is happy, so I can't investigate more, will have to 
wait for mythlogserver instances going crazy again. Will post here!

Cheers,

Matthias



More information about the mythtv-users mailing list