Назад | Перейти на главную страницу

G-Wan использует всю доступную память

Я установил последний на данный момент веб-сервер g-wan (4.3.14 x64) на KVM VPS с серверной версией Ubuntu 14.04.02 x64, предоставленной Vultr (1 ГБ ОЗУ, 1 ядро ​​ЦП и 2 ГБ подкачки).

Настройка VPS абсолютно проста - только Ubuntu и g-wan. Я скопировал g-wan в / opt / gwan / и запустил его как службу, используя сценарии инициализации, представленные в документации g-wan. Я также отключил папку csp (переименовав ее в _csp) и не установил никаких дополнительных языков сценариев для работы с ней, потому что мне она нужна только как статический файловый сервер. Кроме этого, я не делал никаких дополнительных настроек (кроме включения журналов доступа и ошибок).

Первоначально g-wan запускается с очень маленьким объемом памяти - чуть больше 4 МБ, но только через несколько часов он становится намного больше (через 7 часов после последнего перезапуска, а теперь он занимает около 360 МБ) - чем больше времени проходит, тем больше он растет, и машина перестает отвечать (я полагаю, из-за подкачки), и единственное решение - перезагрузить ее.

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

Я могу предоставить дополнительную информацию, если потребуется, просто не знаю, что еще упомянуть в этот момент.

//РЕДАКТИРОВАТЬ:

Вот последние 30 строк журнала трассировки:

Tue, 28 Jul 2015 08:08:55 GMT: start
Tue, 28 Jul 2015 08:08:56 GMT: start
Tue, 28 Jul 2015 08:08:57 GMT: start
Tue, 28 Jul 2015 08:08:58 GMT: start
Tue, 28 Jul 2015 08:09:00 GMT: start
Tue, 28 Jul 2015 08:09:01 GMT: start
Tue, 28 Jul 2015 08:09:02 GMT: start
Tue, 28 Jul 2015 08:09:03 GMT: start
Tue, 28 Jul 2015 08:09:04 GMT: start
Tue, 28 Jul 2015 08:09:06 GMT: start
Tue, 28 Jul 2015 08:09:07 GMT: start
Tue, 28 Jul 2015 08:09:08 GMT: start
Tue, 28 Jul 2015 08:09:09 GMT: start
Tue, 28 Jul 2015 08:09:10 GMT: start
Tue, 28 Jul 2015 08:09:11 GMT: start
Tue, 28 Jul 2015 08:09:13 GMT: start
Tue, 28 Jul 2015 08:09:14 GMT: start
Tue, 28 Jul 2015 08:09:15 GMT: start
Tue, 28 Jul 2015 08:09:16 GMT: start
Tue, 28 Jul 2015 08:09:18 GMT: start
Tue, 28 Jul 2015 08:09:19 GMT: start
Tue, 28 Jul 2015 08:09:20 GMT: start
Tue, 28 Jul 2015 08:09:20 GMT: signal 15: Termination
Tue, 28 Jul 2015 08:09:40 GMT: start
Tue, 28 Jul 2015 14:45:05 GMT: signal 2: Ctrl-C
Tue, 28 Jul 2015 14:45:41 GMT: start
Tue, 28 Jul 2015 17:56:47 GMT: signal 15: Termination
Tue, 28 Jul 2015 17:58:15 GMT: start
Tue, 28 Jul 2015 17:59:00 GMT: signal 15: Termination
Tue, 28 Jul 2015 17:59:11 GMT: start

И некоторые пояснения к ним:

Я проверил весь журнал, и он заполнен только строками, содержащими метку времени и начало для каждой секунды. Первое завершение - это когда я остановил службу и запустил сервер вручную через ./gwan. Второе завершение Ctrl-C возникает, когда я остановил предыдущую команду (которая ничего не показывала на терминале во время работы) и на этот раз запустила ее с ./gwan -d:www-data:www-data - опять никаких проблем. Я снова убил его и запустил как службу - снова нет записей о запуске в журнале каждую секунду, хотя он работает только в течение часа.

В файле gwan.log также не было ничего, кроме информации о запуске / остановке и расходе памяти, напечатанных каждую секунду следующим образом:

[Tue Jul 28 03:29:32 2015 GMT] Host /opt/gwan/0.0.0.0_8080/#0.0.0.0
[Tue Jul 28 03:29:32 2015 GMT] log files enabled
[Tue Jul 28 03:29:32 2015 GMT] memory footprint: 188.71 MiB.
[Tue Jul 28 03:29:33 2015 GMT] memory footprint: 187.56 MiB.
[Tue Jul 28 03:29:33 2015 GMT] Host /opt/gwan/0.0.0.0_8080/#0.0.0.0
[Tue Jul 28 03:29:33 2015 GMT] log files enabled
[Tue Jul 28 03:29:33 2015 GMT] memory footprint: 189.10 MiB.
[Tue Jul 28 03:29:34 2015 GMT] memory footprint: 187.58 MiB.
[Tue Jul 28 03:29:34 2015 GMT] Host /opt/gwan/0.0.0.0_8080/#0.0.0.0
[Tue Jul 28 03:29:34 2015 GMT] log files enabled
[Tue Jul 28 03:29:34 2015 GMT] memory footprint: 188.72 MiB.
[Tue Jul 28 03:29:35 2015 GMT] memory footprint: 187.61 MiB.
[Tue Jul 28 03:29:35 2015 GMT] Host /opt/gwan/0.0.0.0_8080/#0.0.0.0
[Tue Jul 28 03:29:35 2015 GMT] log files enabled
[Tue Jul 28 03:29:35 2015 GMT] memory footprint: 190.40 MiB.
[Tue Jul 28 03:29:36 2015 GMT] memory footprint: 187.61 MiB.
[Tue Jul 28 03:29:36 2015 GMT] Host /opt/gwan/0.0.0.0_8080/#0.0.0.0
[Tue Jul 28 03:29:36 2015 GMT] log files enabled
[Tue Jul 28 03:29:36 2015 GMT] memory footprint: 188.75 MiB.
[Tue Jul 28 03:29:37 2015 GMT] memory footprint: 187.63 MiB.
[Tue Jul 28 03:29:37 2015 GMT] Host /opt/gwan/0.0.0.0_8080/#0.0.0.0
[Tue Jul 28 03:29:37 2015 GMT] log files enabled
[Tue Jul 28 03:29:37 2015 GMT] memory footprint: 190.32 MiB.
[Tue Jul 28 03:29:38 2015 GMT] memory footprint: 187.66 MiB.
[Tue Jul 28 03:29:38 2015 GMT] Host /opt/gwan/0.0.0.0_8080/#0.0.0.0
[Tue Jul 28 03:29:38 2015 GMT] log files enabled
[Tue Jul 28 03:29:38 2015 GMT] memory footprint: 188.79 MiB.
[Tue Jul 28 03:29:39 2015 GMT] memory footprint: 187.67 MiB.
[Tue Jul 28 03:29:39 2015 GMT] Host /opt/gwan/0.0.0.0_8080/#0.0.0.0
[Tue Jul 28 03:29:39 2015 GMT] log files enabled
[Tue Jul 28 03:29:39 2015 GMT] memory footprint: 190.61 MiB.
[Tue Jul 28 03:29:41 2015 GMT] memory footprint: 187.69 MiB.
[Tue Jul 28 03:29:41 2015 GMT] Host /opt/gwan/0.0.0.0_8080/#0.0.0.0
[Tue Jul 28 03:29:41 2015 GMT] log files enabled
[Tue Jul 28 03:29:41 2015 GMT] memory footprint: 188.83 MiB.
[Tue Jul 28 03:29:42 2015 GMT] memory footprint: 187.70 MiB.
[Tue Jul 28 03:29:42 2015 GMT] Host /opt/gwan/0.0.0.0_8080/#0.0.0.0
[Tue Jul 28 03:29:42 2015 GMT] log files enabled
[Tue Jul 28 03:29:42 2015 GMT] memory footprint: 190.10 MiB.
[Tue Jul 28 03:29:43 2015 GMT] memory footprint: 187.71 MiB.
[Tue Jul 28 03:29:43 2015 GMT] Host /opt/gwan/0.0.0.0_8080/#0.0.0.0
[Tue Jul 28 03:29:43 2015 GMT] log files enabled
[Tue Jul 28 03:29:43 2015 GMT] memory footprint: 188.86 MiB.
[Tue Jul 28 03:29:44 2015 GMT] memory footprint: 187.73 MiB.
[Tue Jul 28 03:29:44 2015 GMT] Host /opt/gwan/0.0.0.0_8080/#0.0.0.0
[Tue Jul 28 03:29:44 2015 GMT] log files enabled
[Tue Jul 28 03:29:44 2015 GMT] memory footprint: 190.13 MiB.
[Tue Jul 28 03:29:45 2015 GMT] memory footprint: 187.76 MiB.
[Tue Jul 28 03:29:45 2015 GMT] Host /opt/gwan/0.0.0.0_8080/#0.0.0.0
[Tue Jul 28 03:29:45 2015 GMT] log files enabled
[Tue Jul 28 03:29:45 2015 GMT] memory footprint: 188.91 MiB.
[Tue Jul 28 03:29:46 2015 GMT] memory footprint: 187.74 MiB.
[Tue Jul 28 03:29:46 2015 GMT] Host /opt/gwan/0.0.0.0_8080/#0.0.0.0
[Tue Jul 28 03:29:46 2015 GMT] log files enabled
[Tue Jul 28 03:29:46 2015 GMT] memory footprint: 188.90 MiB.
[Tue Jul 28 03:29:47 2015 GMT] memory footprint: 187.79 MiB.
[Tue Jul 28 03:29:47 2015 GMT] Host /opt/gwan/0.0.0.0_8080/#0.0.0.0
[Tue Jul 28 03:29:47 2015 GMT] log files enabled
[Tue Jul 28 03:29:47 2015 GMT] memory footprint: 188.92 MiB.
[Tue Jul 28 03:29:48 2015 GMT] memory footprint: 187.79 MiB.
[Tue Jul 28 03:29:48 2015 GMT] Host /opt/gwan/0.0.0.0_8080/#0.0.0.0
[Tue Jul 28 03:29:48 2015 GMT] log files enabled
[Tue Jul 28 03:29:48 2015 GMT] memory footprint: 190.17 MiB.
[Tue Jul 28 03:29:50 2015 GMT] memory footprint: 187.82 MiB.
[Tue Jul 28 03:29:50 2015 GMT] Host /opt/gwan/0.0.0.0_8080/#0.0.0.0
[Tue Jul 28 03:29:50 2015 GMT] log files enabled
[Tue Jul 28 03:29:50 2015 GMT] memory footprint: 188.95 MiB.
[Tue Jul 28 03:29:51 2015 GMT] memory footprint: 187.84 MiB.
[Tue Jul 28 03:29:51 2015 GMT] Host /opt/gwan/0.0.0.0_8080/#0.0.0.0
[Tue Jul 28 03:29:51 2015 GMT] log files enabled
[Tue Jul 28 03:29:51 2015 GMT] memory footprint: 190.21 MiB.
[Tue Jul 28 03:29:52 2015 GMT] memory footprint: 187.84 MiB.
[Tue Jul 28 03:29:52 2015 GMT] Host /opt/gwan/0.0.0.0_8080/#0.0.0.0
[Tue Jul 28 03:29:52 2015 GMT] log files enabled
[Tue Jul 28 03:29:52 2015 GMT] memory footprint: 188.10 MiB.

// РЕДАКТИРОВАТЬ 2:

Кажется, что по какой-то странной причине он начинает регистрировать странные стартовые события каждую ночь ровно в полночь. Я запустил это как услугу вчера вечером в Tue, 28 Jul 2015 19:31:22 GMT: start и он работал без проблем до полуночи. Проверим позже, изменив системную дату при работе как обычное приложение.

Кроме того, я забыл упомянуть, что cronjobs вообще не определены на тот случай, если какое-либо из них может помешать g-wan.

// РЕДАКТИРОВАТЬ 3:

Я пробовал вручную изменить системную дату, пока g-wan работал как служба и как обычное приложение (до этого также отключил службу ntp), но похоже, что g-wan не распознает изменения, потому что нет журнала ротация в папке, где хранится gwan.log. Также нет новых записей в журнале трассировки.

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

// РЕДАКТИРОВАТЬ 4:

Вот часть обнаружения оборудования с последнего запуска веб-сервера (с измененными IP-адресом и доменным именем). Сервер был запущен с service gwan start, хотя я полагаю, что запись в журнале была бы такой же, если бы я начал ее с ./gwan

[Wed Jul 29 11:37:56 2015 GMT] ------------------------------------------------
[Wed Jul 29 11:37:56 2015 GMT] G-WAN 4.3.14 64-bit (Mar 14 2013 07:33:12)
[Wed Jul 29 11:37:56 2015 GMT] ------------------------------------------------
[Wed Jul 29 11:37:56 2015 GMT] Local Time: Wed, 29 Jul 2015 11:37:56 GMT+0
[Wed Jul 29 11:37:56 2015 GMT] RAM: (474.11 MiB free + 0 shared + 92.90 MiB buffers) / 993.92 MiB total
[Wed Jul 29 11:37:56 2015 GMT] Physical Pages: 474.11 MiB / 993.92 MiB
[Wed Jul 29 11:37:56 2015 GMT] DISK: 15.65 GiB free / 19.70 GiB total
[Wed Jul 29 11:37:56 2015 GMT]  Filesystem     Type      Size  Used Avail Use% Mounted on
[Wed Jul 29 11:37:56 2015 GMT]  /dev/vda1      ext3       20G  4.1G   15G  22% /
[Wed Jul 29 11:37:56 2015 GMT]  none           tmpfs     4.0K     0  4.0K   0% /sys/fs/cgroup
[Wed Jul 29 11:37:56 2015 GMT]  udev           devtmpfs  487M  4.0K  487M   1% /dev
[Wed Jul 29 11:37:56 2015 GMT]  tmpfs          tmpfs     100M  372K  100M   1% /run
[Wed Jul 29 11:37:56 2015 GMT]  none           tmpfs     5.0M     0  5.0M   0% /run/lock
[Wed Jul 29 11:37:56 2015 GMT]  none           tmpfs     497M     0  497M   0% /run/shm
[Wed Jul 29 11:37:56 2015 GMT]  none           tmpfs     100M     0  100M   0% /run/user
[Wed Jul 29 11:37:56 2015 GMT] 80 processes, including pid:2542 './gwan -d'
[Wed Jul 29 11:37:56 2015 GMT] Page-size:4,096 Child-max:7,780 Stream-max:16
[Wed Jul 29 11:37:56 2015 GMT] CPU: 1x Virtual CPU e7da7129d3ee
[Wed Jul 29 11:37:56 2015 GMT]  0 id: 0     0
[Wed Jul 29 11:37:56 2015 GMT] Cores: possible:0 present:0 online:0
[Wed Jul 29 11:37:56 2015 GMT] L1d cache:   32K line:64     0
[Wed Jul 29 11:37:56 2015 GMT] L1i cache:   32K line:64     0
[Wed Jul 29 11:37:56 2015 GMT] L2  cache: 4096K line:64     0
[Wed Jul 29 11:37:56 2015 GMT] NUMA node #1 0
[Wed Jul 29 11:37:56 2015 GMT] CPU(s):1, Core(s)/CPU:0, Thread(s)/Core:2
[Wed Jul 29 11:37:56 2015 GMT] Bogomips: 4,799.99
[Wed Jul 29 11:37:56 2015 GMT] Hypervisor: KVMKVMKVM
[Wed Jul 29 11:37:56 2015 GMT]   using   1 workers 0[1]0
[Wed Jul 29 11:37:56 2015 GMT]   among   2 threads 0[]1
[Wed Jul 29 11:37:56 2015 GMT] 64-bit little-endian (least significant byte first)
[Wed Jul 29 11:37:56 2015 GMT] Ubuntu 14.04.2 LTS \n \l (3.13.0-58) 64-bit
[Wed Jul 29 11:37:56 2015 GMT] user: root (uid:0), group: root (uid:0)
[Wed Jul 29 11:37:56 2015 GMT] system  fd_max: 1,024
[Wed Jul 29 11:37:56 2015 GMT] program fd_max: 1,024
[Wed Jul 29 11:37:56 2015 GMT] updated fd_max: 500,000
[Wed Jul 29 11:37:56 2015 GMT] Available network interfaces (2):
[Wed Jul 29 11:37:56 2015 GMT] 127.0.0.1
[Wed Jul 29 11:37:56 2015 GMT] 1.2.3.4
[Wed Jul 29 11:37:56 2015 GMT] memory footprint: 1.33 MiB.
[Wed Jul 29 11:37:56 2015 GMT] Host /opt/gwan/0.0.0.0_80/#domain.com
[Wed Jul 29 11:37:56 2015 GMT] log files enabled
[Wed Jul 29 11:37:56 2015 GMT] memory footprint: 3.93 MiB.

// РЕДАКТИРОВАТЬ 5:

Сегодня вечером я оставил его работать как обычный процесс (с ./gwan), и в полночь проблем не было, так что проблема могла быть в режиме демона.

Думаю, я могу запустить его таким образом при запуске с cron, если для режима обслуживания нет исправления.

CPU: 1x Virtual CPU e7da7129d3ee
[Wed Jul 29 11:37:56 2015 GMT] Cores: possible:0 present:0 online:0
CPU(s):1, Core(s)/CPU:0, Thread(s)/Core:2
Hypervisor: KVMKVMKVM
using   1 workers 0[1]0
among   2 threads 0[]1

Не смотрите дальше, однажды гипервизор KVM может правильно реализовать виртуализацию ЦП, правильно обновив переменные ядра / proc / sys ...

А пока KVM будет ломать каждую multicore приложение, например G-WAN.

«Исправление» - запустить G-WAN следующим образом: # ./gwan -g -w 1 -d

Это заставит использовать 1 ядро ​​ЦП, несмотря на ложную системную информацию.