1

私の場合は「rsyslogd」です。

最大1億7000万のメモリを消費していることがわかりましたが、これは多すぎます。

/etc/rsyslog.confにある構成ファイルを確認しました

次に、その中に書き込まれた各ファイルをチェックし、

しかし無駄です。

現在操作しているファイルを調べて、何が起こっているのかを調べるにはどうすればよいですか?

[root@slvdb2 log]# lsof -p `pidof rsyslogd`
COMMAND   PID USER   FD   TYPE             DEVICE    SIZE       NODE NAME
rsyslogd 1965 root  cwd    DIR                8,1    4096          2 /
rsyslogd 1965 root  rtd    DIR                8,1    4096          2 /
rsyslogd 1965 root  txt    REG                8,1  259072    2818209 /sbin/rsyslogd
rsyslogd 1965 root  mem    REG                8,1  142176    1097807 /lib64/ld-2.8.so
rsyslogd 1965 root  mem    REG                8,1 1804136    1097817 /lib64/libc-2.8.so
rsyslogd 1965 root  mem    REG                8,1  143096    1097871 /lib64/libpthread-2.8.so
rsyslogd 1965 root  mem    REG                8,1   88976    1097890 /lib64/libz.so.1.2.3
rsyslogd 1965 root  mem    REG                8,1   93416    1097834 /lib64/libgcc_s-4.3.0-20080428.so.1
rsyslogd 1965 root  mem    REG                8,1   53448    1097874 /lib64/librt-2.8.so
rsyslogd 1965 root  mem    REG                8,1   23208    1098015 /lib64/libdl-2.8.so
rsyslogd 1965 root  mem    REG                8,1   11368    4720595 /usr/lib64/rsyslog/imuxsock.so
rsyslogd 1965 root  mem    REG                8,1   23560    4720591 /usr/lib64/rsyslog/imklog.so
rsyslogd 1965 root  mem    REG                8,1   57808    1097853 /lib64/libnss_files-2.8.so
rsyslogd 1965 root  mem    REG                8,1   19504    4720596 /usr/lib64/rsyslog/lmnet.so
rsyslogd 1965 root  mem    REG                8,1    8584    4720598 /usr/lib64/rsyslog/lmtcpclt.so
rsyslogd 1965 root    0u  unix 0xffff880008a31c40            3909712 /dev/log
rsyslogd 1965 root    1w   REG                8,1     435    4014282 /var/log/messages
rsyslogd 1965 root    2w   REG                8,1 7723905    4014355 /var/log/secure
rsyslogd 1965 root    3w   REG                8,1       0    4014356 /var/log/maillog
rsyslogd 1965 root    4w   REG                8,1   58959    4014359 /var/log/cron
rsyslogd 1965 root    5w   REG                8,1       0    4014357 /var/log/spooler
rsyslogd 1965 root    6w   REG                8,1       0    4014358 /var/log/boot.log
rsyslogd 1965 root    7r   REG                0,3       0 4026531849 /proc/kmsg

上記のファイルから手がかりが得られませんでした..

4

7 に答える 7

7
lsof -p `pidof rsyslogd`
于 2009-05-27T17:13:34.350 に答える
6

lsofは、fuserと同様に、これに非常に便利です。

于 2009-05-27T17:08:59.803 に答える
3

rsyslogd が「多すぎる」メモリ (170MB) を使用していると主張します。何と比べて多すぎる?

まず、この記事を読むことから始めます。おそらく、rsyslogd はあなたが思っているほど多くのメモリを使用していません。それでもそう思う場合は、rsyslogdについて学んでください。ソースを参照することもできます。

もう少し分析を行ったら、rsyslogd 開発者との対話を開きたいと思うかもしれません。彼らはおそらくあなたの質問に答えるのにより適した立場にいます。

ところで、同じ質問を何度もするのはよくありません。元の質問を編集したほうがよかったでしょう。

個人的には、あなたの主な問題は「サイトのパフォーマンス」(おそらく Web サイト) にあると思われるため、何百万ものサイトで使用されている重要な OS プロセスに焦点を当てる前に、サイト自体にサービスを提供しているソフトウェアを最初に確認することをお勧めします。日常的にサーバー。ええ、問題は、ローテーションが必要な巨大なファイルに rsyslogd がログ メッセージを書き込もうとしている可能性がありますが、キャッシュできる (キャッシュする必要がある) 場合は、リクエストごとに動的に生成されるコンテンツである可能性が高くなります。

于 2009-05-27T17:48:28.303 に答える
2

lsof -p <pid>トリックを行う必要があります。

于 2009-05-27T17:12:34.353 に答える
1

プロセスがで開いたファイルについてのアイデアを得ることができます/proc/[pid_of_process]/fd/

于 2009-05-27T17:13:02.620 に答える
1

トリックを行う必要があります:

/usr/sbin/lsof | grep rsyslogd
于 2009-05-27T17:20:08.363 に答える
0

プロセスの「内部を調べて」「何が起こっているのか」を確認したい場合は、straceのようなものを使用することをお勧めします。

于 2009-05-27T17:13:39.093 に答える