Linux за българи: Форуми

Linux секция за напреднали => Хардуерни и софтуерни проблеми => Темата е започната от: vox в Jan 28, 2014, 10:23



Титла: proxy - Out of socket memory
Публикувано от: vox в Jan 28, 2014, 10:23
Привет на всички!

1. Debian Lenny
2. Squid 2.7.STABLE3

Транспарантно прокси, използвано от около 1800 потребители.
Сървърни параметри :

- CPU - Quad Core -  Intel(R) Xeon(TM) CPU 3.00GHz
- RAM - 2 GB
- DISK - 2 x 40 GB RAID 1

след изпълнение на dmesg, ми изкарва кърнел грешки :

- Out of socket memory
- TCP: too many of orphaned sockets

#########################################

proxy~# cat /proc/sys/net/ipv4/tcp_mem
4096    4096    4096

#########################################

proxy~# cat /etc/sysctl.conf

fs.file-max = 65535
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
net.ipv4.tcp_rmem = 4096 87380 8388608
net.ipv4.tcp_wmem = 4096 65536 8388608
net.ipv4.tcp_mem = 4096 4096 4096
net.ipv4.tcp_low_latency = 1
net.core.netdev_max_backlog = 4000
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_syn_backlog = 16384


Понеже аз съм в заварено положение, може ли да ми дадете съвети как да изчистя проблемите от логовете ?


Титла: Re: proxy - Out of socket memory
Публикувано от: solarflux в Jan 28, 2014, 10:54
1. cat /proc/sys/net/ipv4/tcp_max_orphans
2. cat /proc/net/sockstat

виж колко са в изхода на 2 и направи 1 ( net.ipv4.tcp_max_orphans във сисктл.конф)  около 4х броят в 2


Титла: Re: proxy - Out of socket memory
Публикувано от: vox в Jan 28, 2014, 11:04
######################################
proxy:~#  cat /proc/net/sockstat
sockets: used 1877
TCP: inuse 1905 orphan 68 tw 2337 alloc 1909 mem 1980
UDP: inuse 7 mem 0
UDPLITE: inuse 0
RAW: inuse 0
FRAG: inuse 0 memory 0
proxy:~#


Тоест правя 4 x 1877 = 7508
и това го добавям в /etc/sysctl.conf както следва :

net.ipv4.tcp_max_orphans = 7508


Титла: Re: proxy - Out of socket memory
Публикувано от: solarflux в Jan 28, 2014, 11:14
не точно - orphan са 68

http://blog.tsunanet.net/2011/03/out-of-socket-memory.html

принципно в момента не би трябвало да имаш подобни проблеми, но предполагам проксито не е особено натоварено. Направи си един скрипт дето да записва колко са ти орфан сокетите за по-дълъг период, и вземи най-голямата стойност и сложи в /етц/сисктл.конф net.ipv4.tcp_max_orphans  = 4х тая стойност. Освен това

fs.file-max = 65535

ми се струва малко, така че може да го увеличиш и него


Титла: Re: proxy - Out of socket memory
Публикувано от: vox в Jan 28, 2014, 11:17
Това със следенето на най-голямата стойност, ОК ще го направя
а fs.file-max = 65535 на какъв принцип да го увелича ?!? x 1.5 ?!


Титла: Re: proxy - Out of socket memory
Публикувано от: solarflux в Jan 28, 2014, 11:25
при положение че имаш само 2гб рам не ми се се струва добре да го правиш повече от 204800 т.е. 100 фд за всеки 1 мб рам... Какво дава
sysctl fs.file-nr
?


Титла: Re: proxy - Out of socket memory
Публикувано от: vox в Jan 28, 2014, 11:36
аз вече го промених fs.file-max

proxy:~# sysctl fs.file-nr
fs.file-nr = 2400       0       204800