Jump to content
Калькуляторы

FreeBSD + ipfw + mpd4 (300 интерфейсов) периодически переполнение сокетов и файлов((( нид хелп

Сервер: E2100, 2Gb, 250Gb, re0, re1, re2, re3

FreeBSD 7.2-RELEASE-p6

ipfw, mpd4 (pptp, shape), freeradius2+mysql

 

успешно отработал более года

 

последних 3 дня творятся чудеса:

post-71986-1274479041_thumb.png

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

 

восттанавливал бекап 3х месячной давности

еффект тот же

 

нид хелп, куда копать?

 

выведу сюда любую инфу - говорите какую

 

CPU:  3.4% user,  0.0% nice,  4.5% system,  3.8% interrupt, 88.3% idle
Mem: 1363M Active, 695M Inact, 267M Wired, 364K Cache, 112M Buf, 1057M Free
Swap: 2014M Total, 2014M Free

  PID USERNAME   PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
   12 root       171 ki31     0K     8K CPU0   0  83:29 89.75% idle: cpu0
   11 root       171 ki31     0K     8K RUN    1  79:31 82.81% idle: cpu1
4177 squid        4    0  1460M  1457M kqread 0  27:42 10.99% squid
   13 root       -44    -     0K     8K WAIT   1  29:03  5.42% swi1: net
   14 root       -32    -     0K     8K WAIT   0   5:39  0.98% swi4: clock
    3 root       -68    -     0K     8K sleep  1   5:37  0.24% ng_queue1
16053 root         8    0  3096K  1004K nanslp 1   0:02  0.20% monitord
    2 root       -68    -     0K     8K sleep  1   5:36  0.00% ng_queue0
1057 root        96    0 13040K  8084K select 1   0:49  0.00% mpd4
1005 bind        96    0 93100K 81772K ucond  1   0:37  0.00% named
1005 bind        96    0 93100K 81772K ucond  1   0:37  0.00% named
  563 root        96    0  4944K  3044K select 1   0:29  0.00% ppp
   27 root       -68    -     0K     8K -      0   0:22  0.00% dummynet
   16 root       -16    -     0K     8K -      1   0:18  0.00% yarrow
1005 bind         4    0 93100K 81772K kqread 1   0:15  0.00% named

 

vmstat -z
ITEM                     SIZE     LIMIT      USED      FREE  REQUESTS  FAILURES

UMA Kegs:                 128,        0,       78,       12,       78,        0
UMA Zones:                480,        0,       78,        2,       78,        0
UMA Slabs:                 64,        0,     1321,       36,  1094224,        0
UMA RCntSlabs:            104,        0,    15292,       26,    15292,        0
UMA Hash:                 128,        0,        4,       26,        7,        0
16 Bucket:                 76,        0,       60,       40,       82,        0
32 Bucket:                140,        0,       77,        7,      101,        0
64 Bucket:                268,        0,      104,        8,      158,        7
128 Bucket:               524,        0,     1839,        2,     2549,      224
VM OBJECT:                128,        0,     8888,     1642,   711904,        0
MAP:                      140,        0,        7,       21,        7,        0
KMAP ENTRY:                68,    98448,       33,      303,  2353496,        0
MAP ENTRY:                 68,        0,     5968,     2824,  1781498,        0
PDPT:                      32,        0,      242,      210,      242,        0
DP fakepg:                 76,        0,        0,      200,     3687,        0
mt_zone:                 1032,        0,      198,      255,      198,        0
16:                        16,        0,     8996,    11507,  8781907,        0
32:                        32,        0,     3909,     2080, 90849071,        0
64:                        64,        0,     8095,     4472,   223301,        0
128:                      128,        0,    12209,    10171,   508020,        0
256:                      256,        0,     1777,     2978,   657961,        0
512:                      512,        0,      593,      119,    10468,        0
1024:                    1024,        0,      476,       68,    23549,        0
2048:                    2048,        0,      237,      285,     1958,        0
4096:                    4096,        0,      165,      125,    74564,        0
Files:                     76,        0,     8831,    22419,  6522921,        0
TURNSTILE:                 76,        0,      323,       61,      323,        0
umtx pi:                   52,        0,        0,        0,        0,        0
PROC:                     696,        0,      115,      135,    46512,        0
THREAD:                   544,        0,      288,       34,     2092,        0
UPCALL:                    44,        0,        0,        0,        0,        0
SLEEPQUEUE:                32,        0,      323,      242,      323,        0
VMSPACE:                  240,        0,       79,      177,    46475,        0
cpuset:                    40,        0,        2,      182,        2,        0
audit_record:             856,        0,        0,        0,        0,        0
mbuf_packet:              256,        0,     3439,    24593, 77590474,        0
mbuf:                     256,        0,      395,     3193, 261568401,        0
mbuf_cluster:            2048,    66560,    28032,       10,    28032,        0
mbuf_jumbo_pagesize:     4096,    33280,      318,      953,  4287451,        0
mbuf_jumbo_9k:           9216,    16640,        0,        0,        0,        0
mbuf_jumbo_16k:         16384,     8320,        0,        0,        0,        0
mbuf_ext_refcnt:            4,        0,        0,      406,     2804,        0
ACL UMA zone:             388,        0,        0,        0,        0,        0
NetGraph items:            36,     8268,        2,      388, 37886935,        0
NetGraph data items:       36,      546,        0,      390, 112999512,        0
g_bio:                    132,        0,        0,     2262,   187737,        0
ata_request:              192,        0,        0,      580,    49843,        0
ata_composite:            184,        0,        0,        0,        0,        0
VNODE:                    276,        0,     7239,      349,    16323,        0
VNODEPOLL:                 64,        0,        0,        0,        0,        0
S VFS Cache:               68,        0,     6794,      206,  2025480,        0
L VFS Cache:              291,        0,      494,       39,      580,        0
NAMEI:                   1024,        0,        0,       56,  2188021,        0
DIRHASH:                 1024,        0,      267,       21,      267,        0
NFSMOUNT:                 560,        0,        0,        0,        0,        0
NFSNODE:                  452,        0,        0,        0,        0,        0
pipe:                     396,        0,       27,      123,    33922,        0
ksiginfo:                  80,        0,      223,      833,      223,        0
itimer:                   220,        0,        1,       35,        1,        0
KNOTE:                     68,        0,     4139,    27949, 128037225,        0
socket:                   416,    66564,     9280,    29501,  2233674,        0
unpcb:                    168,    66562,       78,       83,     3893,        0
ipq:                       32,     2147,        0,      339,        5,        0
udpcb:                    180,    66572,       36,      470,   213674,        0
inpcb:                    180,    66572,     8791,    31029,  2011773,        0
tcpcb:                    464,    66560,     8241,    29383,  2011773,        0
tcptw:                     52,     8208,      550,     3050,   182702,        0
syncache:                 104,    15392,        0,      222,   991772,        0
hostcache:                 76,    15400,      978,      322,     1567,        0
tcpreass:                  20,     4225,        4,      841,  1443597,        0
sackhole:                  20,        0,        4,      503,   375954,        0
ripcb:                    180,    66572,      118,      146,     2050,        0
rtentry:                  124,        0,      343,      246,     1413,        0
IPFW dynamic rule:        108,        0,        0,      612,    83929,        0
divcb:                    180,    66572,        0,        0,        0,        0
SWAPMETA:                 276,   121576,        0,        0,        0,        0
Mountpoints:              720,        0,        7,        8,        7,        0
FFS inode:                124,        0,     6921,       54,     7792,        0
FFS1 dinode:              128,        0,        0,        0,        0,        0
FFS2 dinode:              256,        0,     6921,       84,     7792,        0

 

netstat -s
tcp:
        52435492 packets sent
                28234669 data packets (2627207172 bytes)
                1388006 data packets (1293381889 bytes) retransmitted
                12246 data packets unnecessarily retransmitted
                0 resends initiated by MTU discovery
                18303864 ack-only packets (630659 delayed)
                0 URG only packets
                581 window probe packets
                2871780 window update packets
                2073924 control packets
        43223235 packets received
                15684504 acks (for 2087261229 bytes)
                3046947 duplicate acks
                6 acks for unsent data
                21551910 packets (4223788707 bytes) received in-sequence
                57511 completely duplicate packets (13837271 bytes)
                14 old duplicate packets
                1231 packets with some dup. data (282586 bytes duped)
                1449883 out-of-order packets (1923903688 bytes)
                8933 packets (231 bytes) of data after window
                231 window probes
                90427 window update packets
                3134 packets received after close
                314 discarded for bad checksums
                0 discarded for bad header offset fields
                0 discarded because packet too short
                55952 discarded due to memory problems
        1040557 connection requests
        975336 connection accepts
        0 bad connection attempts
        0 listen queue overflows
        610337 ignored RSTs in the windows
        1382034 connections established (including accepts)
        2008361 connections closed (including 246680 drops)
                97353 connections updated cached RTT on close
                97733 connections updated cached RTT variance on close
                79971 connections updated cached ssthresh on close
        1753 embryonic connections dropped
        6335189 segments updated rtt (of 8093926 attempts)
        6053662 retransmit timeouts
                40297 connections dropped by rexmit timeout
        626 persist timeouts
                5 connections dropped by persist timeout
        2217 Connections (fin_wait_2) dropped because of timeout
        12 keepalive timeouts
                8 keepalive probes sent
                4 connections dropped by keepalive
        2742440 correct ACK header predictions
        20129730 correct data packet header predictions
        993262 syncache entries added
                5241 retransmitted
                9350 dupsyn
                29 dropped
                975336 completed
                9 bucket overflow
                0 cache overflow
                17257 reset
                678 stale
                0 aborted
                0 badack
                0 unreach
                0 zone failures
        993291 cookies sent
        20 cookies received
        291529 SACK recovery episodes
        390236 segment rexmits in SACK recovery episodes
        499295156 byte rexmits in SACK recovery episodes
        2044412 SACK options (SACK blocks) received
        1403674 SACK options (SACK blocks) sent
        0 SACK scoreboard overflow
udp:
        716166 datagrams received
        0 with incomplete header
        1 with bad data length field
        2 with bad checksum
        12811 with no checksum
        280607 dropped due to no socket
        47 broadcast/multicast datagrams undelivered
        0 dropped due to full socket buffers
        0 not for hashed pcb
        435509 delivered
        489192 datagrams output
        0 times multicast source filter matched

 

net.inet.ip.portrange.first=1024
net.inet.ip.portrange.last=65535
net.inet.ip.portrange.randomized=0
net.inet.tcp.nolocaltimewait=1

#kernel nat
net.inet.ip.fw.one_pass=0

###############
kern.ipc.somaxconn=10240
net.inet.tcp.fast_finwait2_recycle=1

net.isr.direct=0
net.inet.ip.intr_queue_maxlen=4096

net.inet.icmp.drop_redirect=1

net.graph.recvspace=393216
net.graph.maxdgram=393216

net.bpf.bufsize=65536
net.bpf.maxinsns=1024

net.inet.ip.dummynet.hash_size=1024
net.inet.ip.dummynet.max_chain_len=1024

kern.ipc.maxsockbuf=2097152
net.inet.tcp.sendspace=65536
net.inet.tcp.recvspace=131072

net.inet.udp.maxdgram=131072
net.inet.udp.recvspace=131072

net.inet.ip.fw.dyn_keepalive=0

net.inet.icmp.icmplim=50
net.inet.tcp.blackhole=1
net.inet.udp.blackhole=1

Share this post


Link to post
Share on other sites

Параметры sysctl, что вы привели -- не те, что нужны. Видно, что машина упирается в максимальное число открытых файлов. Для начала, надо увеличить юзерам, от которых запускаются squid и прочие службы, число одновременно открытых файлов (параметр openfiles в /etc/login.conf), увеличить kern.maxfiles и kern.ipc.maxsockets через sysctl. Желательно потом перенести squid и шейпер на отдельные машины.

 

re0, re1, re2, re3
Cервер с сетевухами Realtek. Make me unsee it.
Edited by photon

Share this post


Link to post
Share on other sites
Параметры sysctl, что вы привели -- не те, что нужны. Видно, что машина упирается в максимальное число открытых файлов. Для начала, надо увеличить юзерам, от которых запускаются squid и прочие службы, число одновременно открытых файлов (параметр openfiles в /etc/login.conf), увеличить kern.maxfiles и kern.ipc.maxsockets через sysctl. Желательно потом перенести squid и шейпер на отдельные машины.

там для начала надо найти причину почему столько открыто стало за последние дни

а то получится что увеличил - а через пару дней снова та же репа только больше открыто!

Edited by Lynx10

Share this post


Link to post
Share on other sites
Cервер с сетевухами Realtek. Make me unsee it.

Комбайнёры прут пачками... :-) В топике - ipfw + mpd4, а в top'е - squid, mysql, bind, freeradius :-)

 

 

PS2Okolita75: fstat смотрите

Share this post


Link to post
Share on other sites

>там для начала надо найти причину почему столько открыто стало за последние дни

>а то получится что увеличил - а через пару дней снова та же репа только больше открыто!

 

так и было

при увеличении серв потух тут же при старте

если не увеличивать работает некоторое время

 

комбанеры не комбанеры а серв работал долгое время

я теперь планирую стать мастером диагностики

 

fstat -- identify active files

выдал невероятно длинный список

счас изучу и отпишусь

Share this post


Link to post
Share on other sites
я теперь планирую стать мастером диагностики

О, это как раз очень просто, достаточно 15 лет исполнять ежедневные ката. С боккэном и без. И медитировать стоя на одной ноге на лыжах в гамаке повторяя про себя мантру: f0 0f c7 c8.

Share this post


Link to post
Share on other sites

прошу без юмора и флуда плз

я и сам не прочь поприкалываться но мне счас не до смеха

 

мне больше подойдет lsof

ковыряю и то и то

может кто сразу посоветует какие либо скрипты обработки вывода lsof или fstat?

Share this post


Link to post
Share on other sites

проблема решена.

банальная вирусная эпидемия в сети.

 

диагностика:

написал такой масик-скриптик

#!/bin/sh
sockstat -c -4 -p 80 | grep squid | grep 172.22.
sockstat -4 | grep -w ' squid ' | grep -v '*' | wc -l
netstat -anf inet | fgrep CLOSE_WAIT | wc -l

увидел тучу сессий с одних и тех же ай пи из моей сети (172.22.0.0/16)

 

решение:

тюнинг сквида

 

persistent_request_timeout 30 seconds

client_lifetime 60 minutes

half_closed_clients off

 

до тюнинга цифры сокетов, файлов и т.п. были в тысячах

после применения в сотнях

 

спасибо

можете обращться за более детальной информацией

Edited by okolita75

Share this post


Link to post
Share on other sites

В чем смысл использования сквида в 2010 году ?

 

Share this post


Link to post
Share on other sites

В усложнении себе жизни.

Хотя в случае офисного гейта, может оказаться полезным.

Edited by dsk

Share this post


Link to post
Share on other sites
В чем смысл использования сквида в 2010 году ?

в чем вы видите решение если требуется распределить трафик локальной сети около 1к компов между 20 дслами?

Share this post


Link to post
Share on other sites

А с помощью NAT-а и PBR это разве не делается?

Share this post


Link to post
Share on other sites
А с помощью NAT-а и PBR это разве не делается?

сквид я помню в продакшине ещё в 1998 :))

отказывайтесь от этого монстра....он вас ещё не раз напугает

 

насчёт сквида можна было догадаться по

4177 squid 4 0 1460M 1457M kqread 0 27:42 10.99% squ - 10% это не мало

 

а кроме того это сущство очень прожорливое если неправильно настроено - особенно в стороны дескрипторов сокетов памяти нагрузки на винты и т д

Edited by Lynx10

Share this post


Link to post
Share on other sites
насчёт сквида можна было догадаться по

4177 squid 4 0 1460M 1457M kqread 0 27:42 10.99% squ - 10% это не мало

Это для него как-раз абсолютно нормально, даже маловато я бы сказал, но нагрузка небось мизерная.

Share this post


Link to post
Share on other sites
насчёт сквида можна было догадаться по

4177 squid 4 0 1460M 1457M kqread 0 27:42 10.99% squ - 10% это не мало

Это для него как-раз абсолютно нормально, даже маловато я бы сказал, но нагрузка небось мизерная.

согласен - при больших трафиках - может быть и больше - но у автора я думаю там такими объёмами и не пахнет!
Edited by Lynx10

Share this post


Link to post
Share on other sites
half_closed_clients off
Это ж значение по умолчанию :/

 

 

В чем смысл использования сквида в 2010 году ?
У провайдеров его почти нет, разве что у мелких совсем.

Для дома/офиса вполне себе решение, от которого больше плюсов, чем минусов.

Ещё он умеет WCCP для кошек.

Есть антивирусы, типа доктор веба, которые могут траффик со сквида проверять. Хотя лично мне больше нравится принцип HAVP, но оч не нравится реализация, а своё всё никак не допишу до продакшена.

 

Можно ещё Polipo попробовать, там есть плюшки в виде HTTP1/1, кеширование частей контента (актуально для кеширование апейтов винды, у кого нет возможности использовать WSUS). Но есть сомнения что нагрузку выдержит.

 

А так и выбрать особо не из чего.

Про винду лучше не вспоминать - либо часто сбоит, либо редко но трудно диагностируемо для ремонта, особенно без опыта и навыков либо нагрузку не держит/досится легко.

Edited by Ivan_83

Share this post


Link to post
Share on other sites
Для дома/офиса вполне себе решение, от которого больше плюсов, чем минусов.

 

Ещё он умеет WCCP для кошек.

Есть антивирусы, типа доктор веба, которые могут траффик со сквида проверять. Хотя лично мне больше нравится принцип HAVP, но оч не нравится реализация, а своё всё никак не допишу до продакшена.

 

Можно ещё Polipo попробовать, там есть плюшки в виде HTTP1/1, кеширование частей контента (актуально для кеширование апейтов винды, у кого нет возможности использовать WSUS). Но есть сомнения что нагрузку выдержит.

да много чего можно - но его реально юзать только в офисе или на предприятиях - ВСЁ! а прикрутить всякой дряни к нему - да можно много

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this