LINUX.ORG.RU
ФорумAdmin

Потребление памяти rsyslog'ом

 , ,


0

1

Решил разобраться с rsyslog'ом - отжирает ну слишком много памяти.

Версия:

[root@man ~]# uname -r
2.6.32-504.el6.x86_64
[root@man ~]# rsyslogd -v
rsyslogd 8.23.0, compiled with:
	PLATFORM:				x86_64-redhat-linux-gnu
	PLATFORM (lsb_release -d):		
	FEATURE_REGEXP:				Yes
	GSSAPI Kerberos 5 support:		No
	FEATURE_DEBUG (debug build, slow code):	No
	32bit Atomic operations supported:	Yes
	64bit Atomic operations supported:	Yes
	memory allocator:			system default
	Runtime Instrumentation (slow code):	No
	uuid support:				Yes
	Number of Bits in RainerScript integers: 64

See http://www.rsyslog.com for more information.

Потребляет:

[root@man ~]# cat /proc/26181/status
Name:	rsyslogd
State:	S (sleeping)
Tgid:	26181
Pid:	26181
PPid:	1
TracerPid:	0
Uid:	0	0	0	0
Gid:	0	0	0	0
Utrace:	0
FDSize:	64
Groups:	0 
VmPeak:	 3277040 kB
VmSize:	 3211504 kB
VmLck:	       0 kB
VmHWM:	 2826940 kB
VmRSS:	 2740892 kB
VmData:	 3169412 kB
VmStk:	      88 kB
VmExe:	     584 kB
VmLib:	    2360 kB
VmPTE:	    5860 kB
VmSwap:	  190096 kB
Threads:	5
SigQ:	2/95152
SigPnd:	0000000000000000
ShdPnd:	0000000000000000
SigBlk:	0000000000000000
SigIgn:	0000000001001206
SigCgt:	0000000180114801
CapInh:	0000000000000000
CapPrm:	ffffffffffffffff
CapEff:	ffffffffffffffff
CapBnd:	ffffffffffffffff
Cpus_allowed:	f
Cpus_allowed_list:	0-3
Mems_allowed:	00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
Mems_allowed_list:	0
voluntary_ctxt_switches:	1228
nonvoluntary_ctxt_switches:	1
[root@man ~]# 

Часть top'a:

Mem:  12198248k total, 12039996k used,   158252k free,      524k buffers
Swap:  2097148k total,  1078524k used,  1018624k free,   167304k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  SWAP COMMAND                                                                                                                                       
14480 root      20   0 11.4g 7.3g 2472 S 32.9 63.0  10931:05 563m java                                                                                                                                          
26181 root      20   0 3136m 2.6g  492 S  1.3 22.5 143:40.08 185m rsyslogd

На сервере есть небольшая проблема - RAM 12Gb, swap 2Gb. Да, по BP нужно увеличивать swap, но, как мне кажется, сколько ни выделяй - он все будет потихоньку сжирать. Да, логов пишется большое количество - но за 5-6 дней он начинает отжирать суммарно 5-6 Гб памяти(включая swap). Swapiness поставлен в 10.

Что можно сделать, кроме увеличения времени опроса или изменения swapiness? Почему кроме - в моем понимании это просто увеличит интервал забивания памяти.

Решил разобраться с rsyslog'ом - отжирает ну слишком много памяти.

Разбирайся

1) нужно проверить в конфиге настройку очередей rsyslog ( как memory, так и всякие disk-assisted )

2) если самосборный, ссзб, разбирайся дальше. если дистрибутивный, установи обновления

router ★★★★★
()
Ответ на: комментарий от router

1) нужно проверить в конфиге настройку очередей rsyslog ( как memory, так и всякие disk-assisted )

Отсутствуют таковые. Читал http://www.rsyslog.com/doc/v8-stable/concepts/queues.html - по дефолту - FixedArray. Правильно ли я понимаю, что для большого потока логов это неоптимальный вариант и надо использовать «LinkedList queue», который, судя по этой документации, лучше справляется с большим потоком данных и потребляет меньше памяти, т.к. аллоцирует ее только при необходимости, в отличие от fixedarray, который аллоцирует ее постоянно?

2) если самосборный, ссзб, разбирайся дальше. если дистрибутивный, установи обновления

Stable 8.25 - ничего по поводу memory в changes нет.

n1cew0lf
() автор топика
Ответ на: комментарий от n1cew0lf

rsyslog не должен жрать гигабайты, если только в памяти не копятся недоставленные сообщения ( грубая оценка из документации - одно сообщение 512 байт )

Чтобы не копились, смотри какие очереди используешь и при необходимости ограничивай их

Stable 8.25 - ничего по поводу memory в changes нет.

Т.е. самосборный. Ну, сам виноват, лови утечку памяти

router ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.