From: Alex Moskalenko <mav@elserv.msk.su> To: ALT Linux sysadmins' discussion <sysadmins@lists.altlinux.org> Subject: [Sysadmins] OpenVZ CT, PostgreSQL и Shared memory Date: Wed, 14 Aug 2013 20:41:44 +0400 Message-ID: <520BB348.2000902@elserv.msk.su> (raw) Здравствуйте! Поделитесь пожалуйста опытом работы с PostgreSQL в контейнере OpenVZ. Начиная с ядер 2.6.32-ovz-el-alt75 и заканчивая 2.6.32-ovz-el-alt100 наблюдаю одну и ту же картину: в процессе работы контейнера серверный процесс PostgreSQL падает с SIGBUS, после чего мастер-процесс перезапускает все остальные серверные процессы. Ситуация проявляется далеко не сразу, а по прошествии некоторого времени с момента старта контейнера. При анализе ситуации выяснилось, что контейнер приближается к лимиту по physpages (используется VSwap, поэтому все остальное - unlimited). Основной потребитель памяти - дисковый кэш. При этом никакие лимиты никогда не превышаются и failcnt (по всем ресурсам) всегда ноль. Когда текущее значение physpages приближается к лимиту, PostgreSQL выдает следующее: 2013-08-08 14:27:51 MSK [26800] host=[local] db=db user=db: ERROR: could not read block 2981 in file "base/88880/89603": read only 5216 of 8192 bytes 2013-08-08 14:27:51 MSK [26676] host=[local] db=db user=db: ERROR: could not read block 2981 in file "base/88880/89603": read only 5216 of 8192 bytes 2013-08-08 14:27:52 MSK [26813] host=[local] db=db user=db: ERROR: could not read block 2981 in file "base/88880/89603": read only 5216 of 8192 bytes 2013-08-08 14:27:56 MSK [26524] host= db= user=: LOG: server process (PID 26753) was terminated by signal 7: Bus error 2013-08-08 14:27:56 MSK [26524] host= db= user=: LOG: terminating any other active server processes Описание проблемы похоже на http://www.postgresql.org/message-id/CAK3UJREBcyVBtr8D7vMfU=uDdkjXkrPnGcuy8erYB0tMfKe1LA@mail.gmail.com. От выделенного PostgreSQL shared_buffers зависит только одно - через какое время он упадет. Буферов меньше - работает дольше. Также в Changelog на http://wiki.openvz.org/Download/kernel/rhel6-testing/042stab078.21 есть упоминание об исправлении, которое, похоже, призвано решить эту проблему: "[ubc/shmem] full size is charged at creation now in order to return -ENOMEM in shmget(), not SIGBUS on an attempt to write into it (PCLIN-31867)". Вот только на 2.6.32-ovz-el-alt100 (которое основано на 042stab079.4) PostgreSQL точно так же падает с той же диагностикой... На данный момент PostgreSQL работает на HN. Без каких-либо проблем/сбоев/падений. Но очень хочется вернуть его в контейнер.... PS На всякий случай: cat /proc/bc/VEID/resources kmemsize 57991229 59351040 9223372036854775807 9223372036854775807 0 lockedpages 0 0 2048 2048 0 privvmpages 454308 462347 9223372036854775807 9223372036854775807 0 shmpages 43236 43237 9223372036854775807 9223372036854775807 0 numproc 206 219 1024 1024 0 physpages 149691 157290 524288 524288 0 vmguarpages 0 0 33792 9223372036854775807 0 oomguarpages 127680 133594 26112 9223372036854775807 0 numtcpsock 97 131 2048 2048 0 numflock 3 5 188 206 0 numpty 0 2 16 16 0 numsiginfo 0 6 256 256 0 tcpsndbuf 7036576 12626096 9223372036854775807 9223372036854775807 0 tcprcvbuf 10324296 15474008 9223372036854775807 9223372036854775807 0 othersockbuf 11560 83232 9223372036854775807 9223372036854775807 0 dgramrcvbuf 0 68864 9223372036854775807 9223372036854775807 0 numothersock 25 56 360 360 0 dcachesize 16529592 16561684 9223372036854775807 9223372036854775807 0 numfile 610 715 9312 9312 0 numiptent 20 20 128 128 0 swappages 2641 4644 262144 262144 0 -- WBR, Alex Moskalenko
next reply other threads:[~2013-08-14 16:41 UTC|newest] Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-08-14 16:41 Alex Moskalenko [this message] 2013-08-14 17:06 ` Viacheslav Dubrovskyi 2013-08-14 17:12 ` Alex Moskalenko 2013-08-14 17:28 ` Viacheslav Dubrovskyi
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=520BB348.2000902@elserv.msk.su \ --to=mav@elserv.msk.su \ --cc=sysadmins@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux sysadmins discussion This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/sysadmins/0 sysadmins/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 sysadmins sysadmins/ http://lore.altlinux.org/sysadmins \ sysadmins@lists.altlinux.org sysadmins@lists.altlinux.ru sysadmins@lists.altlinux.com public-inbox-index sysadmins Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.sysadmins AGPL code for this site: git clone https://public-inbox.org/public-inbox.git