Утечка памяти, eST RC9 U1

Обсуждаем все, что относится к выделенным серверам *NIX (Unix, Linux) и Windows
Ответить
Сообщение
Автор
Аватара пользователя
Lemah
Нович0к
Нович0к
Сообщения: 24
Зарегистрирован: 05.11.2010
Откуда: Одесса
Контактная информация:

#1 Сообщение 08.08.2011, 19:54

Обратил внимание что сервер после недели работы начинает лагать, подтормаживать. Не удивительно было когда я зашел на сервер посмотреть потребление ОЗУ, он кушал все 4GB физической памяти, и уже прилично кушал своп. Проблему пока не нашел как решить, но анализ потребления ОЗУ дал пищу для размышления (ниже показано потребление всех модулей на сервере).

Железо:

Код: Выделить всё

AMD Phenom II x2 550 BE
RAM: 4GB Kingston
Игровой сервер:

Код: Выделить всё

GOLD CS Source v34
eST RC9 U1
MAP 1.2U
EventScript 2.0.0.248
Анализ потребления ОЗУ:

Код: Выделить всё

    272k: PID     1 (/lib/libdl-2.7.so)
    724k: PID   924 (/sbin/udevd)
  90988k: PID  1816 (/usr/sbin/rsyslogd)
    272k: PID  1827 (/usr/sbin/acpid)
    560k: PID  1843 (/lib/libnss_files-2.7.so)
    292k: PID  1863 (/lib/libnss_files-2.7.so)
    396k: PID  1962 (/bin/bash)
    396k: PID  1979 (/lib/libnss_files-2.7.so)
    276k: PID  1992 (/lib/libc-2.7.so)
    276k: PID  1994 (/lib/libc-2.7.so)
    276k: PID  1995 (/sbin/getty)
    276k: PID  1996 (/lib/libc-2.7.so)
    276k: PID  1997 (/lib/libc-2.7.so)
    276k: PID  1998 (/sbin/getty)
 252576k: PID  2011 (/opt/css_d2only/bin/libeST_SCI.so)
 529300k: PID  2158 (/opt/csds/bin/libeST_SCI.so)
    744k: PID  2305 (/dev/zero)
    516k: PID  2308 (/lib/libnss_files-2.7.so)
    608k: PID  2458 (/dev/zero)
    480k: PID  2461 (/bin/bash)
    404k: PID  2466 (/lib/libc-2.7.so)
   1280k: /dev/zero 2305
   1280k: /dev/zero 2305
   1280k: /dev/zero 2458
   1280k: /dev/zero 2458
   2136k: /lib/libgcc_s.so.1 1816
   2148k: /lib/libselinux.so.1 1 924 1843 1863 2305 2458
   2088k: /lib/libpam.so.0.81.12 1843 1863 2305 2458
   2060k: /lib/security/pam_limits.so 2305 2458
   2280k: /lib/libncurses.so.5.7 1962 1979 2461
   2056k: /lib/libcom_err.so.2.1 1843 2305 2308 2458
   2276k: /lib/libsepol.so.1 1
   2048k: /lib/security/pam_motd.so 2305 2458
   2096k: /lib/security/pam_unix.so 2305 2458
   2052k: /lib/security/pam_mail.so 2305 2458
   2056k: /lib/security/pam_env.so 2305 2458
   2052k: /lib/security/pam_nologin.so 2305 2458
   2076k: /lib/libwrap.so.0.7.6 1843 2305 2458
   2052k: /lib/libkeyutils-1.2.so 1843 2305 2308 2458
   2136k: /lib/libpthread-2.7.so 1816 1843 2305 2308 2458
    116k: /lib/ld-2.7.so 1 924 1816 1827 1843 1863 1962 1979 1992 1994 1995 ...
   3364k: /lib/libc-2.7.so 1 924 1816 1827 1843 1863 1962 1979 1992 1994 199...
   2080k: /lib/libcrypt-2.7.so 1843 2305 2308 2458
   2056k: /lib/libdl-2.7.so 1 924 1816 1843 1863 1962 1979 2305 2308 2458 2461
   2128k: /lib/libnsl-2.7.so 924 1816 1843 1863 1962 1979 2305 2308 2458 2461
   2072k: /lib/libnss_compat-2.7.so 924 1816 1843 1863 1962 1979 2305 2308 2...
   2060k: /lib/libnss_dns-2.7.so 2305 2458
   2088k: /lib/libnss_files-2.7.so 924 1816 1843 1863 1962 1979 2305 2308 24...
   2084k: /lib/libnss_nis-2.7.so 924 1816 1843 1863 1962 1979 2305 2308 2458...
   2112k: /lib/libresolv-2.7.so 1843 2305 2308 2458
   2076k: /lib/librt-2.7.so 1816
   2052k: /lib/libutil-2.7.so 1843 2305 2308 2458
    780k: /bin/bash 1962 1979 2461
     80k: /emul/ia32-linux/lib/libpthread-2.7.so 2011 2158
    120k: /emul/ia32-linux/lib/ld-2.7.so 2011 2158
   1340k: /emul/ia32-linux/lib/libc-2.7.so 2011 2158
     12k: /emul/ia32-linux/lib/libdl-2.7.so 2011 2158
    144k: /emul/ia32-linux/lib/libm-2.7.so 2011 2158
     20k: /emul/ia32-linux/lib/libnss_dns-2.7.so 2011 2158
     40k: /emul/ia32-linux/lib/libnss_files-2.7.so 2011 2158
     68k: /emul/ia32-linux/lib/libresolv-2.7.so 2011 2158
     12k: /emul/ia32-linux/lib/libutil-2.7.so 2011 2158
     48k: /emul/ia32-linux/usr/lib/libgcc_s.so.1 2011 2158
     80k: /emul/ia32-linux/usr/lib/libz.so.1.2.3.3 2011 2158
    924k: /emul/ia32-linux/usr/lib/libstdc++.so.6.0.10 2011 2158
     56k: /opt/csds/srcds_amd 2158
     76k: /opt/csds/bin/vstdlib_i486.so 2158
     32k: /opt/csds/bin/scenefilecache_i486.so 2158
    496k: /opt/csds/bin/studiorender_i486.so 2158
   1700k: /opt/csds/bin/libsteamvalidateuseridtickets_i486.so 2158
    376k: /opt/csds/bin/datacache_i486.so 2158
    184k: /opt/csds/bin/tier0_i486.so 2158
    296k: /opt/csds/bin/vstdlib_s_i486.so 2158
    676k: /opt/csds/bin/dedicated_amd.so 2158
   2528k: /opt/csds/bin/vphysics_i486.so 2158
   4488k: /opt/csds/bin/engine_amd.so 2158
     64k: /opt/csds/bin/shaderapiempty_i486.so 2158
     76k: /opt/csds/bin/valve_api.so 2158
    240k: /opt/csds/bin/soundemittersystem_i486.so 2158
    988k: /opt/csds/bin/materialsystem_i486.so 2158
   6968k: /opt/csds/bin/steamclient_i486.so 2158
    196k: /opt/csds/bin/tier0_s_i486.so 2158
    656k: /opt/csds/bin/steam_api_i486.so 2158
   1836k: /opt/csds/bin/libeST_SCI.so 2158
    816k: /opt/csds/bin/libeST_STEAM2.so 2158
  12612k: /opt/csds/cstrike/bin/server_i486.so 2158
     56k: /opt/css_d2only/srcds_amd 2011
     76k: /opt/css_d2only/bin/vstdlib_i486.so 2011
     32k: /opt/css_d2only/bin/scenefilecache_i486.so 2011
    496k: /opt/css_d2only/bin/studiorender_i486.so 2011
     76k: /opt/css_d2only/bin/valve_api.so 2011
   1700k: /opt/css_d2only/bin/libsteamvalidateuseridtickets_i486.so 2011
    376k: /opt/css_d2only/bin/datacache_i486.so 2011
    816k: /opt/css_d2only/bin/libeST_STEAM2.so 2011
    184k: /opt/css_d2only/bin/tier0_i486.so 2011
    296k: /opt/css_d2only/bin/vstdlib_s_i486.so 2011
    676k: /opt/css_d2only/bin/dedicated_amd.so 2011
   1836k: /opt/css_d2only/bin/libeST_SCI.so 2011
   2528k: /opt/css_d2only/bin/vphysics_i486.so 2011
   4488k: /opt/css_d2only/bin/engine_amd.so 2011
     64k: /opt/css_d2only/bin/shaderapiempty_i486.so 2011
    656k: /opt/css_d2only/bin/steam_api_i486.so 2011
    240k: /opt/css_d2only/bin/soundemittersystem_i486.so 2011
    988k: /opt/css_d2only/bin/materialsystem_i486.so 2011
   6968k: /opt/css_d2only/bin/steamclient_i486.so 2011
    196k: /opt/css_d2only/bin/tier0_s_i486.so 2011
   3656k: /opt/csds/cstrike/addons/mani_admin_plugin_i486.so 2158
     32k: /opt/csds/cstrike/addons/eventscripts/_engines/python/Lib/plat-lin...
     16k: /opt/csds/cstrike/addons/eventscripts/_engines/python/Lib/plat-lin...
     20k: /opt/csds/cstrike/addons/eventscripts/_engines/python/Lib/plat-lin...
     68k: /opt/csds/cstrike/addons/eventscripts/_engines/python/Lib/plat-lin...
     16k: /opt/csds/cstrike/addons/eventscripts/_engines/python/Lib/plat-lin...
     12k: /opt/csds/cstrike/addons/eventscripts/_engines/python/Lib/plat-lin...
   1204k: /opt/csds/cstrike/addons/eventscripts/_engines/python/Lib/plat-lin...
     12k: /opt/csds/cstrike/addons/eventscripts/_engines/python/Lib/plat-lin...
     52k: /opt/csds/cstrike/addons/eventscripts/_engines/python/Lib/plat-lin...
     20k: /opt/csds/cstrike/addons/eventscripts/_engines/python/Lib/plat-lin...
     16k: /opt/csds/cstrike/addons/eventscripts/_engines/python/Lib/plat-lin...
     16k: /opt/csds/cstrike/addons/eventscripts/_engines/python/Lib/plat-lin...
      8k: /opt/csds/cstrike/addons/eventscripts/_engines/python/Lib/plat-lin...
     16k: /opt/csds/cstrike/addons/eventscripts/_engines/python/Lib/plat-lin...
     12k: /opt/csds/cstrike/addons/eventscripts/_engines/python/Lib/plat-lin...
     12k: /opt/csds/cstrike/addons/eventscripts/_engines/python/Lib/plat-lin...
     20k: /opt/csds/cstrike/addons/eventscripts/_engines/python/Lib/plat-lin...
     52k: /opt/csds/cstrike/addons/eventscripts/_engines/python/Lib/plat-lin...
     44k: /opt/csds/cstrike/addons/eventscripts/_engines/python/Lib/plat-lin...
     24k: /opt/csds/cstrike/addons/eventscripts/_engines/python/Lib/plat-lin...
    260k: /opt/csds/cstrike/addons/eventscripts/_engines/python/Lib/plat-lin...
   2112k: /opt/csds/cstrike/addons/mattie_eventscripts_i486.so 2158
     92k: /opt/csds/cstrike/addons/daf/bin/dosattackfix_i486.so 2158
  12612k: /opt/css_d2only/cstrike/bin/server_i486.so 2011
   2112k: /opt/css_d2only/cstrike/addons/mattie_eventscripts_i486.so 2011
     92k: /opt/css_d2only/cstrike/addons/daf/bin/dosattackfix_i486.so 2011
     20k: /opt/css_d2only/cstrike/addons/eventscripts/_engines/python/Lib/pl...
      8k: /opt/css_d2only/cstrike/addons/eventscripts/_engines/python/Lib/pl...
     12k: /opt/css_d2only/cstrike/addons/eventscripts/_engines/python/Lib/pl...
     20k: /opt/css_d2only/cstrike/addons/eventscripts/_engines/python/Lib/pl...
     24k: /opt/css_d2only/cstrike/addons/eventscripts/_engines/python/Lib/pl...
     52k: /opt/css_d2only/cstrike/addons/eventscripts/_engines/python/Lib/pl...
     16k: /opt/css_d2only/cstrike/addons/eventscripts/_engines/python/Lib/pl...
     16k: /opt/css_d2only/cstrike/addons/eventscripts/_engines/python/Lib/pl...
     52k: /opt/css_d2only/cstrike/addons/eventscripts/_engines/python/Lib/pl...
     32k: /opt/css_d2only/cstrike/addons/eventscripts/_engines/python/Lib/pl...
     12k: /opt/css_d2only/cstrike/addons/eventscripts/_engines/python/Lib/pl...
     16k: /opt/css_d2only/cstrike/addons/eventscripts/_engines/python/Lib/pl...
     68k: /opt/css_d2only/cstrike/addons/eventscripts/_engines/python/Lib/pl...
   1204k: /opt/css_d2only/cstrike/addons/eventscripts/_engines/python/Lib/pl...
     12k: /opt/css_d2only/cstrike/addons/eventscripts/_engines/python/Lib/pl...
     16k: /opt/css_d2only/cstrike/addons/eventscripts/_engines/python/Lib/pl...
     20k: /opt/css_d2only/cstrike/addons/eventscripts/_engines/python/Lib/pl...
     44k: /opt/css_d2only/cstrike/addons/eventscripts/_engines/python/Lib/pl...
    260k: /opt/css_d2only/cstrike/addons/eventscripts/_engines/python/Lib/pl...
     16k: /opt/css_d2only/cstrike/addons/eventscripts/_engines/python/Lib/pl...
     12k: /opt/css_d2only/cstrike/addons/eventscripts/_engines/python/Lib/pl...
   3656k: /opt/css_d2only/cstrike/addons/mani_admin_plugin_i486.so 2011
     36k: /sbin/init 1
     20k: /sbin/getty 1992 1994 1995 1996 1997 1998
     72k: /sbin/udevd 924
     28k: /usr/lib/gconv/gconv-modules.cache 2461
   2136k: /usr/lib/libz.so.1.2.3.3 1816 1843 2305 2308 2458
     36k: /usr/sbin/cron 1863
   3524k: /usr/lib/libcrypto.so.0.9.8 1843 2305 2308 2458
    248k: /usr/sbin/rsyslogd 1816
     24k: /usr/sbin/acpid 1827
   2216k: /usr/lib/libgssapi_krb5.so.2.2 1843 2305 2308 2458
   2676k: /usr/lib/libkrb5.so.3.3 1843 2305 2308 2458
   2076k: /usr/lib/libkrb5support.so.0.1 1843 2305 2308 2458
   2192k: /usr/lib/libk5crypto.so.3.1 1843 2305 2308 2458
    464k: /usr/sbin/sshd 1843 2305 2458
      8k: /usr/bin/memstat 2466
   2064k: /usr/lib/rsyslog/lmnet.so 1816
   2052k: /usr/lib/rsyslog/lmtcpclt.so 1816
   2056k: /usr/lib/rsyslog/imuxsock.so 1816
   2068k: /usr/lib/rsyslog/imklog.so 1816
   1256k: /usr/lib/locale/locale-archive 1863 2461
     60k: /usr/lib/openssh/sftp-server 2308
--------
1056488k
Из всего списка видно это эмулятор eST дает большую нагрузку на память, не высвобождая ее.

Код: Выделить всё

252576k: PID  2011 (/opt/css_d2only/bin/libeST_SCI.so)
529300k: PID  2158 (/opt/csds/bin/libeST_SCI.so)
Проблему на данный момент решаю перезагрузкой игровых серверов, и принудительной очисткой памяти, свопа.
Если есть решение подскажите что делать. Эмулятор сносить будет бессмысленно как и держать сервер без него. Поиск по форуму не дал результатов.
Изображение

Аватара пользователя
leha---83
Капитан
Капитан
Сообщения: 275
Зарегистрирован: 24.11.2008
Откуда: Perm (Chernushka)
Контактная информация:

#2 Сообщение 08.08.2011, 20:10

Ответа и нет ! Еженедельный ребут только и спасает.
Изображение

Аватара пользователя
Lemah
Нович0к
Нович0к
Сообщения: 24
Зарегистрирован: 05.11.2010
Откуда: Одесса
Контактная информация:

#3 Сообщение 08.08.2011, 20:14

весело...
Изображение

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#4 Сообщение 08.08.2011, 20:31

кому-то нужен valgrind %)
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Аватара пользователя
GenyaArikado878
Сержант
Сержант
Сообщения: 62
Зарегистрирован: 19.11.2010
Поблагодарили: 1 раз

#5 Сообщение 09.08.2011, 01:23

Lemah

RevEmu поставь.)
Изображение

Изображение

Проект 787 Hard-Mod https://vkontakte.ru/source787servers

Аватара пользователя
xiloid
Капитан
Капитан
Сообщения: 341
Зарегистрирован: 30.10.2008
Поблагодарили: 3 раза

#6 Сообщение 10.08.2011, 10:05

Как писали выше, только ежедневный ребут по крону, часиков в 6,7 утра, когда никого нету. В принципе он даже полезен по своему.
Наглядная "пила" утечек памяти :D
Изображение

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#7 Сообщение 10.08.2011, 11:59

Может попробуете подробный багрепорт написать?
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Аватара пользователя
Lemah
Нович0к
Нович0к
Сообщения: 24
Зарегистрирован: 05.11.2010
Откуда: Одесса
Контактная информация:

#8 Сообщение 14.08.2011, 07:45

GenyaArikado878 писал(а):Lemah

RevEmu поставь.)
RevEmu - эммм... не пробовал ... надо потыкать, интересно как он по функционалу не уступает eST?

NiGHt-LEshiY писал(а):Может попробуете подробный багрепорт написать?
Не знаю изменит ли что-то баг репорт, разработчик(и) наверное в курсе.


Насчет рестарата есть одна проблема, может кто подскажет, бывает сервер не заводиться, просто зависает консоль, и если стоит eventscript то Ctrl+C помогает раздуплить его. Пока решения не нашел данной проблеме.
Изображение

Аватара пользователя
nikit-xxx
Лейтенант
Лейтенант
Сообщения: 208
Зарегистрирован: 28.11.2007
Благодарил (а): 44 раза
Поблагодарили: 5 раз

#9 Сообщение 17.08.2011, 16:46

Lemah писал(а):он по функционалу не уступает eST?
уступает
rev.ini
[Emulator]

# CacheEnabled set to true to enable loading apps from GCF.
# If it is true, and a clientregistry.blob file is not supplied,
# then you must supply revApps.ini file with the correct cache requirements.
# See the example revApps.ini, however it is highly recommended that you use
# a clientregistry.blob file for maximum compatibility
#
# Default = False
#
CacheEnabled = false

# CachePath - set to the folder where your GCF files are located
#
# Default = (n/a)
#
CachePath = E:\Steam\SteamApps

# Language - rev emu will automagically load the correct language files.
# This can be English, French, Italian, German, Spanish, sChinese,
# Korean, Koreana, tChinese, Japanese, Russian, Thai, or Portugeuse
#
# revEmu will try to set the Language key in the following order:
# Use the Language key in the this rev.ini if it is present
# Use the Steam Language key in the registry if it is present
# Default the Language to English
#
#Language = English
Language = Russian

# Change Logging to True to enable/disable log file output for steam.dll
#
# Default = False
#
Logging=False

# Change SteamDll to point to your official Steam client DLL.
# This setting is required for Steam UserID Validation functions
# to support legit Steam IDs. Otherwise, all clients would get
# IDs generated from their IP addresses.
# Also make sure you uncomment the line below (remove "#")
# if you want to use this setting!
# Note that this setting only applies to games using SteamGameServer
# up to version 003. (e.g. CS: Source, Team Fortess 2, Garry's Mod)
#
# Default = (n/a)
#
SteamDll=.\bin\Steam\Steam.dll

# Change SteamClient to True if you want to use the steamclient emulator.
# This setting is recommended to be true for both clients \ game servers
# and for all games, except games which use SteamClient006 interface
# (e.g. CS: Source, Half-Life 2: Deathmatch)
# To see if the game is using this old interface, enable SteamClient,
# enable Logging and you will notice a log line "Using SteamClientXXX".
# If 007, leave the option ON, otherwise, it is recommended not to use it.
#
# Default = False
#
SteamClient = True

# Change SteamUser to the steam username that you wish to use with revEmu
# Defaults to revCrew if not specified
#
SteamUser = SteamPlayer

[Log]

# If Logging is set to True, choose which functions would you like to log.
#
# Default = False
#
FileSystem=False
Account=False
UserID=False

[steamclient]

################################### NOTE ####################################
# These settings may apply even if you don't choose to use steamclient.dll! #
#############################################################################
#
# Change the setting below to set your PlayerName (used in src2007 engine)
# not use ""
#
# Default = REVOLUTiON
#
PlayerName=Your name


# Change the setting below to enable/disable log file output for steamclient.dll
#
# Default = False
#
Logging=False

# Change ClientDLL to point to the original steamclient.dll
# This setting will enable VAC for your server and your server will be listed
# on Valve master server! Also, Steam clients will have their regular Steam IDs
# Please use the steamclient.dll from Steam folder!
#
# Default = (n/a)
#
ClientDLL=.\bin\Steam\steamclient.dll

#
#
#SteamExe=E:\Steam\Steam.exe

# DisableUnlockedItems enables you to choose whether to use the new weapons in
# Team Fortress 2. This setting applies to you only if you are a regular player,
# or to all your clients if you are a server hoster.
#
# Default = False
#
#DisableUnlockedItems = True

# If you use in Ultimate SSDK change the setting below to True
# use only Ultimate SSDK enable else disable.
# Default = False
#
#EnableSDK = True

#Change the setting to set masterserver, from where serverlist will be got.
#No support Setti masterserver.....
#Default = 72.165.61.136:27015 only for HL2
#Friends tab in serverbrowser shows another masterserver for VIP server ($)
#
#HL1 servers
#MasterServer = 188.40.40.201:27010
#MasterServer = 69.28.158.131:27010
#MasterServer = 209.197.20.34:27010
#MasterServer = 69.28.140.247:27010
#
#HL2 servers
#
MasterServer = 72.165.61.153:27015
#MasterServer = 63.234.149.83:27011
#MasterServer = 63.234.149.90:27011
#
#rdkf
#MasterServer = 68.142.72.250:27012

#Search game version in MasterServer.
#Default search all version.
#
#GameVersion=1.0.0.64

#Add rename ClanTag maximum 12 symbol UTF-8 or 24 symbol ANSI
#ex. ClanTag = revcrev
ClanTag=[revcrew]

[GameServer]

# GameServer policy rules
# Allow (v9.73 < revEmu < 9.83) clients to join your server
#
# Default = True
#
AllowOldRev74=False

# Allow revEmu v9.63 ~ 9.73 clients to join your server
# revEmu v9.62 and below will be rejected nevertheless
#
# Default = True
#
AllowOldRev=False

# Allow unknown clients to join your server
#
# Default = True
#
AllowUnknown=False

# Allow cracked Steam clients to join your server
#
# Default = True
#
AllowCracked=False

# Allow legitimate Steam clients to join your server
#
# Default = True
#
#AllowLegit=False

#Allowed any count connect Unknown client with one IP (25 Unknown clients 1 IP default true)
#
AllowedAnyCountConnectUnknownClientWithOneIP = false

[GameServerNSNet]
#EnableNSNetSvc = [False/UDP/TCP/BOTH]
#NSNetDedicatedPort = Порт(Только для Slave серевров)
#AdditionalSlaveServer = IP:PORT
#AdditionalSlaveServer = IP:PORT
#AdditionalSlaveServer = IP:PORT
#AdditionalSlaveServer = IP:PORT
Откуда иксы в моём нике
Изображение
Изображение
скачать С. Прата. Язык программирования C++. Лекции и упражнения. 5-е изд (*Выровнена нумерация страниц, *Содержание)
Краткая инструкция по созданию пиратки-распака CS/HL
Изображение
Использование тэга подсветки синтаксиса
[syntax lang="cpp" lines="n"]
#include <iostream>
using namespace std;

struct cl{
static void f() { cout << "Hi, user!\n"; }
int i;
};

int main()
{
cl::f();
//cl::i = 1;
return 0;
}
[/syntax]

Ответить