ALT Linux sysadmins discussion
 help / color / mirror / Atom feed
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



             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