Перейти к содержимому
Калькуляторы

Лаги FreeBSD 6.1 SMP игровой сервер...

Значит тачка Dual Xeon 2х3,2Ghz/MB Intel 7320/4Gb DDRII/RAID 1 (встроенный рейд в мамку)

 

Ситуация следующая. На сервере стоит игровой сервак Ragnarok онлайн 600-1000 человек.

Софт: FreeBSD 6.1 SMP, Mysql,apache1.3(пустой),ftp и собсно игровой сервер Ragnarok - eathena.

Тачка раз в 5 мощнее чем нужна при таком онлайне.. Пинг до серва 5-15мс. Периодически (раз в 1-2 минуты) в работе игрового сервера замечается подвисаниена 1-2 секунды, потом все нормально опять. Во время подвисания ни монстры ни игроки не двигаются, иногда людей откидывает назад, пинги летят суперски... Нагрузка сервера не увеличивается... Подвисает только игровой серв... При небольшом онлайне (100-300 после рестарта) такого не наблюдается...

Перепробовал все что можно... Уже не верю в победу ))) Может кто поможет ))) С меня пиво :)

 

Softupdates включены.

Сетевуха встроенная em, polling включен.

 

Отличия sysctl от дефолта:

---

kern.maxdsiz=1073741824 (сервак кушает оперативы 600-700 мегов)

kern.ipc.somaxconn=8192

net.inet.tcp.blackhole=2

net.inet.udp.blackhole=1

net.inet.icmp.drop_redirect=1

net.inet.icmp.log_redirect=1

net.inet.ip.redirect=0

net.inet.tcp.sendspace=32768

net.inet.tcp.recvspace=65536

net.inet.ip.sourceroute=0

net.inet.ip.accept_sourceroute=0

net.inet.icmp.bmcastecho=0

net.inet.icmp.maskrepl=0

net.inet.tcp.msl=7500

net.inet.icmp.icmplim=50

kern.polling.enable=1

kern.maxusers=1500

kern.ipc.maxsockbuf=2097152

kern.maxfiles=65536

kern.maxfilesperproc=32768

net.inet.tcp.delayed_ack=0

net.inet.tcp.sendspace=65535

net.inet.tcp.recvspace=65535

net.inet.udp.recvspace=65535

net.inet.udp.maxdgram=131072

net.local.stream.recvspace=65535

net.local.stream.sendspace=65535

---

 

Вывод топа:

----

last pid: 89229; load averages: 0.71, 0.65, 0.68 up 8+06:24:55 22:47:31

86 processes: 1 running, 85 sleeping

CPU states: 3.2% user, 0.0% nice, 4.4% system, 0.0% interrupt, 92.4% idle

Mem: 1299M Active, 1333M Inact, 217M Wired, 147M Cache, 112M Buf, 16M Free

Swap: 2048M Total, 12K Used, 2048M Free

 

PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND

15675 server 1 92 -5 588M 576M select 0 20.0H 18.70% map-server_sq

446 mysql 41 20 0 344M 313M kserel 0 477:29 1.22% mysqld

15674 server 1 96 0 25104K 23576K select 2 11:27 0.00% char-server_s

15673 server 1 96 0 675M 364M select 2 1:49 0.00% login-server_

447 root 1 96 0 2504K 1796K select 0 0:20 0.00% httpd

478 root 1 96 0 3420K 2276K select 2 0:14 0.00% sendmail

488 root 1 8 0 1328K 932K nanslp 0 0:02 0.00% cron

472 root 1 96 0 3356K 1864K select 2 0:02 0.00% sshd

288 root 1 96 0 1300K 848K select 2 0:02 0.00% syslogd

549 www 1 4 0 2632K 1988K accept 0 0:02 0.00% httpd

551 www 1 4 0 2632K 1996K accept 0 0:02 0.00% httpd

550 www 1 4 0 2632K 1976K accept 2 0:02 0.00% httpd

552 www 1 4 0 2596K 1964K sbwait 0 0:02 0.00% httpd

553 www 1 4 0 2632K 1980K accept 0 0:01 0.00% httpd

558 www 1 4 0 2596K 1960K sbwait 0 0:01 0.00% httpd

559 www 1 4 0 2572K 1936K sbwait 0 0:01 0.00% httpd

560 www 1 4 0 2584K 1944K sbwait 0 0:01 0.00% httpd

----

 

game# vmstat -i

interrupt total rate

irq17: em0 17013629 23

irq18: atapci1 28472020 39

cpu0: timer 1427854463 1997

cpu3: timer 1428239942 1998

cpu1: timer 1427854277 1997

cpu2: timer 1428239941 1998

Total 5757674272 8056

 

 

game# netstat -m

895/1295/2190 mbufs in use (current/cache/total)

272/608/880/97024 mbuf clusters in use (current/cache/total/max)

272/229 mbuf+clusters out of packet secondary zone in use (current/cache)

0/0/0/0 4k (page size) jumbo clusters in use (current/cache/total/max)

0/0/0/0 9k jumbo clusters in use (current/cache/total/max)

0/0/0/0 16k jumbo clusters in use (current/cache/total/max)

767K/1539K/2307K bytes allocated to network (current/cache/total)

28688324/5946372/5959026 requests for mbufs denied (mbufs/clusters/mbuf+clusters)

0/0/0 requests for jumbo clusters denied (4k/9k/16k)

18/181/24512 sfbufs in use (current/peak/max)

0 requests for sfbufs denied

0 requests for sfbufs delayed

5852 requests for I/O initiated by sendfile

71 calls to protocol drain routines

 

Ща поставлю вот этот патч от mbufs denied: http://security.freebsd.org/advisories/Fre...N-06:02.net.asc но не думаю что поможет. По результату отпишусь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

не помогло..

Есть у когонить идеи в чем может быть проблема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

до 6-STABLE обновиться?

6.1 - это очень древняя сборка

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

:) v top ze vso napisana, mashina uzala swap , v mament koda ona nechenajet jevo juztj poluchajem lagi na online prilozenijax eto chustvojetsa momentalno.

 

realno uteba svabodnava rama netu 16m smeshno, na 216 ktota nalazil lapu onitebe nedastupni. vivo.

 

Dai jemu isho 2gb , i budet tebe ok, jesle neuveren , zapusti mrtg kotorij resujet grafiki zagruzki rama i swap , i posledi kada nachnutsa lag, 99% uveren chto savpadenije budet.

 

 

 

BTW vikluchi hipertreiding, jemu toze svoistveno vizavtj lag kada on teraihetsa mezdu realnostu i virtualnostju ;)

 

ingress ? i shto ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а вот это врядли, ибо inact это тоже "свободная" память

 

и 12к в свапе говорит за то, что туда ничего не уходило

 

ps

мониторить надо, что именно встает

но вообще сервисы там не зря разделяемыми сделаны, я бы их на разных тачках и держал, чистое имхо

Изменено пользователем dreamer2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Mem: 1299M Active, 1333M Inact, 217M Wired, 147M Cache, 112M Buf, 16M Free

 

Свободная память: Inact+Cache+Free итого = 1496MB

 

Держать их на разных тачках оч дорого. А вот эта тачка реально должна их держать вместе не напрягаясь... На разных тачках все смогут а вот на одной? )

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Стоп .... как я правильно Вас понял проблема заключается в затыке именно сетевой подсистемы ?

 

Если да, по попрубуйте:

kern.polling.idle_poll=1

kern.polling.reg_frac=40

kern.polling.user_frac=10

kern.random.sys.harvest.ethernet=0

kern.random.sys.harvest.point_to_point=0

kern.random.sys.harvest.interrupt=0

kern.timecounter.hardware=TSC

net.inet.ip.random_id=1

net.inet.ip.redirect=0

net.isr.direct=1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да вот скорее всего не в сетевой.

 

Что еще попробовал:

Уменьшил HZ до 100, отключил поллинг... На мой взгляд подвисания

стали немного покороче по длительности... Но я могу ошибаться...

 

Что заметил:

 

systat -iostat

Периодически показывает зашкаливание tps от 120 до 160%

 

 

/0 /1 /2 /3 /4 /5 /6 /7 /8 /9 /10

Load Average ||

 

/0 /10 /20 /30 /40 /50 /60 /70 /80 /90 /100

cpu user|

nice|

system|

interrupt|

idle|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

/0 /10 /20 /30 /40 /50 /60 /70 /80 /90 /100

ad4 MB/s

tps|

ad6 MB/s

tps|

ar0 MB/sX

tps|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX120.71%

 

Решил еще раз проверить версию с нагрузкой дисков.

При лаге переключаюсь на systat -iostat и там идет превышение tps примерно 120-150%. Всегда при лаге. Это то и странно скорость записи обмена с рейдом (ar0) не превышает 2 мег/сек.

При этом systat -vmstat показывает процент занятости не более 45% в пиковые моменты превышения tps.

Вопрос каким образом кол-во записей в секунду может заставить коматозить рейд? И рейд ли это коматозит? Может один из винтов подклюкивает? Какие мысли есть?

Есть мысль купить рейд intel srcs16 Но я не уверен что это поможет

и по идее при таком объеме использования винта должен справляться и встроенный рейд...

Загружает диск в основном мускуль.

Изменено пользователем Wild99

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Все нашел. Изменил скорость обновления systat -vmstat

Загрузка рейда (ar0) 100% и скорость обмена с рейдом 4,5мега в секунду во время превышения tps и лага.

Че делааать? )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Все нашел. Изменил скорость обновления systat -vmstat

Загрузка рейда (ar0) 100% и скорость обмена с рейдом 4,5мега в секунду во время превышения tps и лага.

Че делааать? )))

Какие диски? SATA, PATA, SCSI?

Отказаться от бортового райда не пытались?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Все нашел. Изменил скорость обновления systat -vmstat

Загрузка рейда (ar0) 100% и скорость обмена с рейдом 4,5мега в секунду во время превышения tps и лага.

Че делааать? )))

Дело в том, что это может быть лагом встроенного раида.

Очень желательно потестить на внешнем RAID'е, по идее должно исправится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

поставить линукс и не ипать мозги и кошелек инвестора на новый контроллер

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

поставить линукс и не ипать мозги и кошелек инвестора на новый контроллер
а че не microsoft windows?

 

2Wild99: а какой raid-контроллер то?

Изменено пользователем shelma

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.