I did a simple thing - modified my syslog.conf:
cat /etc/syslog.conf mail.none;authpriv.none;cron.none /var/log/messages
So virtually, there is nothing to go to /var/log/messages, although my dmesg's output did output a lot of other stuff....as I instrumented the kernel to do printk()....something like every file traversal will generate several entries in dmesg output.
Nevertheless, since /var/log/messages to get, as I check, its content is always zero (after I did an initial truncation) - why is syslogd showing such a high performance:
First snapshot:
27790 root 20 0 268m 203m 14m S 4.3 20.2 2:38.36 opera 3459 root 20 0 315m 33m 8160 S 2.6 3.3 8:16.22 Xorg 532 root 15 -5 0 0 0 S 0.3 0.0 0:01.13 ata/0 2417 root 20 0 1888 648 548 S 0.3 0.1 0:01.73 syslogd 3770 root 20 0 73928 10m 4688 S 0.3 1.0 0:15.76 gnome-terminal 3772 root 20 0 5092 532 484 S 0.3 0.1 0:00.16 wpa_supplicant 28349 root 20 0 2344 1028 788 R 0.3 0.1 0:00.05 top 1 root 20 0 2224 604 564 S 0.0 0.1 0:01.11 init
Next snapshot:
3459 root 20 0 315m 33m 8160 S 11.2 3.3 8:18.51 Xorg 2420 root 20 0 1828 460 392 R 1.9 0.0 0:01.82 klogd 27790 root 20 0 268m 203m 14m S 1.9 20.2 2:39.87 opera 28350 root 20 0 2340 936 700 R 1.9 0.1 0:00.01 top 1 root 20 0 2224 604 564 S 0.0 0.1 0:01.11 init 2 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0 4 root 15 -5 0 0 0 S 0.0 0.0 0:00.40 ksoftirqd/0 5 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
Over a period of time, I observed that klogd and syslogd is toggling to be among the top few candidate all the time - toggling, meaning switching between one and another.
Can someone explained this behavior? Shouldn't the syslogd be consuming almost zero cpu % since there is zero output to /var/log/messages?
PS: I did restart syslogd after /etc/syslogd.conf modification.
On 23Jan2009 17:34, Peter Teoh htmldeveloper@gmail.com wrote: | I did a simple thing - modified my syslog.conf: | | cat /etc/syslog.conf | mail.none;authpriv.none;cron.none /var/log/messages | | So virtually, there is nothing to go to /var/log/messages, although my | dmesg's output did output a lot of other stuff....as I instrumented | the kernel to do printk()....something like every file traversal will | generate several entries in dmesg output. | | Nevertheless, since /var/log/messages to get, as I check, its content | is always zero (after I did an initial truncation) - why is syslogd | showing such a high performance: [...] | Over a period of time, I observed that klogd and syslogd is toggling | to be among the top few candidate all the time - toggling, meaning | switching between one and another. | | Can someone explained this behavior? Shouldn't the syslogd be | consuming almost zero cpu % since there is zero output to | /var/log/messages?
Not really. Your kernel logging is still _all_ going through syslogd, which is quietly deciding not to _copy_ it into the messages file. But it still has to consider and then discard) every kernel message.
Cheers,
Thanks Cameron,
Sorry to get back you late on this. yes, so if it is just purely just getting the message, and then discard, and then getting it again....there are a few optimization possible (sorry, i did not look at source, but just guessing):
a. allocate a ring buffer, so as to be reused all the time, without allocation. b. if the config file (syslogd.conf) say discard, then then there should be ZERO copying of the messages generated by the printk() codes originating from kernel source codes. I instrumented the kernel source to do printk()....but because the execution path is hot, as it is traversed many times over, CPU activities really rises up very high.....but in actual fact my /var/log/messages is ZERO content. i am quite sure there is some under-optimization somewhere.
Thanks.
On Fri, Jan 23, 2009 at 6:30 PM, Cameron Simpson cs@zip.com.au wrote:
On 23Jan2009 17:34, Peter Teoh htmldeveloper@gmail.com wrote: | I did a simple thing - modified my syslog.conf: | | cat /etc/syslog.conf | mail.none;authpriv.none;cron.none /var/log/messages | | So virtually, there is nothing to go to /var/log/messages, although my | dmesg's output did output a lot of other stuff....as I instrumented | the kernel to do printk()....something like every file traversal will | generate several entries in dmesg output. | | Nevertheless, since /var/log/messages to get, as I check, its content | is always zero (after I did an initial truncation) - why is syslogd | showing such a high performance: [...] | Over a period of time, I observed that klogd and syslogd is toggling | to be among the top few candidate all the time - toggling, meaning | switching between one and another. | | Can someone explained this behavior? Shouldn't the syslogd be | consuming almost zero cpu % since there is zero output to | /var/log/messages?
Not really. Your kernel logging is still _all_ going through syslogd, which is quietly deciding not to _copy_ it into the messages file. But it still has to consider and then discard) every kernel message.
Cheers,
Cameron Simpson cs@zip.com.au DoD#743 http://www.cskk.ezoshosting.com/cs/
Anagram: Information superhighway <==> I'm on a huge wispy rhino fart.
-- fedora-list mailing list fedora-list@redhat.com To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines