[linux-lvm] Creating snapshot causes processes hang?
Satoshi Nagayasu
nagayasus at nttdata.co.jp
Tue Nov 1 02:09:13 UTC 2005
Hi all,
I'm testing PostgreSQL(RDBMS) backup using LVM2 snapshot on RHEL4.
After creating a snapshot, some processes (kjournald,
one PostgreSQL backend and others) go to iowait status,
and they never come back. (see pid 8105 and 2973 in below)
In this situation, one PostgreSQL backend process is waiting
in COMMIT processing(it generates fsync() on logical volume),
and also kjournald is waiting something.
There is no kernel oops, and the processors are not used.
When I set an PostgreSQL option not to generate fsync
on COMMIT, it looks work well. No process hangs.
I guess some race conditions is occured around kjournald.
Any comments and suggestions?
Thanks.
------------------------------------
# uname -a
Linux st17 2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:30:39 EST 2005 i686 i686 i386 GNU/Linux
# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda5 20161172 6717648 12419384 36% /
/dev/sda1 202219 11423 180356 6% /boot
none 1037448 0 1037448 0% /dev/shm
/dev/mapper/vg0-pgdata
1032088 515532 464128 53% /pgdata
# ps ax
PID TTY STAT TIME COMMAND
1 ? S 0:00 init [3]
2 ? S 0:00 [migration/0]
3 ? SN 0:00 [ksoftirqd/0]
4 ? S 0:00 [migration/1]
5 ? SN 0:00 [ksoftirqd/1]
6 ? S< 0:00 [events/0]
7 ? S< 0:00 [events/1]
8 ? S< 0:00 [khelper]
9 ? S< 0:00 [kacpid]
30 ? S< 0:00 [kblockd/0]
31 ? S< 0:00 [kblockd/1]
44 ? S< 0:00 [aio/0]
45 ? S< 0:00 [aio/1]
32 ? S 0:00 [khubd]
43 ? S 0:11 [kswapd0]
118 ? S 0:00 [kseriod]
186 ? S 0:00 [scsi_eh_0]
201 ? S 0:17 [kjournald]
1157 ? S<s 0:00 udevd
1342 ? S 0:00 [kjournald]
1761 ? Ss 0:00 syslogd -m 0
1765 ? Ss 0:00 klogd -x
1776 ? Ss 0:00 irqbalance
1794 ? Ss 0:00 portmap
1814 ? Ss 0:00 rpc.statd
1913 ? Ss 0:00 rpc.idmapd
1990 ? Ss 0:00 /usr/sbin/acpid
2003 ? Ss 0:00 cupsd
2042 ? Ss 0:00 /usr/sbin/sshd
2116 ? Ss 0:00 xinetd -stayalive -pidfile /var/run/xinetd.pid
2126 ? Ss 0:00 gpm -m /dev/input/mice -t imps2
2169 ? Ss 0:00 /usr/sbin/htt -retryonerror 0
2170 ? S 0:00 htt_server -nodaemon
2182 ? Ss 0:00 /usr/sbin/cannaserver -syslog -u canna
2233 ? Ss 0:00 crond
2274 ? Ss 0:00 xfs -droppriv -daemon
2293 ? Ss 0:00 /usr/sbin/atd
2303 ? Ssl 0:00 dbus-daemon-1 --system
2317 ? Ss 0:00 cups-config-daemon
2328 ? Ss 0:01 hald
2338 tty1 Ss+ 0:00 /sbin/mingetty tty1
2339 tty2 Ss+ 0:00 /sbin/mingetty tty2
2340 tty3 Ss+ 0:00 /sbin/mingetty tty3
2341 tty4 Ss+ 0:00 /sbin/mingetty tty4
2342 tty5 Ss+ 0:00 /sbin/mingetty tty5
2343 tty6 Ss+ 0:00 /sbin/mingetty tty6
2885 ? Ss 0:00 sshd: snaga [priv]
2887 ? S 0:00 sshd: snaga at pts/0
2888 pts/0 Ss 0:00 -bash
2908 ? Ss 0:00 sshd: snaga [priv]
2910 ? S 0:00 sshd: snaga at pts/1
2911 pts/1 Ss 0:00 -bash
2931 pts/1 S 0:00 su
2932 pts/1 S 0:00 bash
2973 ? D 0:31 [kjournald]
2980 ? S 0:54 [rpciod]
2981 ? S 0:00 [lockd]
3016 pts/0 S 0:00 su
3017 pts/0 S 0:00 bash
3035 pts/0 S 0:00 su postgres
3036 pts/0 S 0:00 bash
7866 pts/0 S+ 0:00 /bin/sh ./pgbench_lvm.sh
7906 pts/0 S+ 0:00 /bin/sh ./pgbench_lvm.sh
7907 pts/0 S+ 0:00 sed -e s/^/lvm:/
7915 pts/0 S+ 0:00 /usr/local/pgsql81b3/bin/postmaster -D /pgdata/data
7917 pts/0 S+ 0:03 postgres: writer process
7918 pts/0 S+ 0:00 postgres: archiver process
7919 pts/0 S+ 0:00 postgres: stats buffer process
7920 pts/0 S+ 0:00 postgres: stats collector process
8015 ? S 0:01 [pdflush]
8094 pts/0 S+ 0:01 pgbench -s 10 -t 1000 -c 16 pgbench
8096 pts/0 S+ 0:00 postgres: postgres pgbench [local] COMMIT
8097 pts/0 S+ 0:00 postgres: postgres pgbench [local] UPDATE waiting
8098 pts/0 S+ 0:00 postgres: postgres pgbench [local] UPDATE waiting
8099 pts/0 S+ 0:00 postgres: postgres pgbench [local] UPDATE waiting
8100 pts/0 S+ 0:00 postgres: postgres pgbench [local] UPDATE waiting
8101 pts/0 S+ 0:00 postgres: postgres pgbench [local] UPDATE waiting
8102 pts/0 S+ 0:00 postgres: postgres pgbench [local] UPDATE waiting
8103 pts/0 S+ 0:00 postgres: postgres pgbench [local] COMMIT
8104 pts/0 S+ 0:00 postgres: postgres pgbench [local] UPDATE waiting
8105 pts/0 D+ 0:00 postgres: postgres pgbench [local] COMMIT
8106 pts/0 S+ 0:00 postgres: postgres pgbench [local] COMMIT
8107 pts/0 S+ 0:00 postgres: postgres pgbench [local] COMMIT
8108 pts/0 S+ 0:00 postgres: postgres pgbench [local] UPDATE waiting
8109 pts/0 S+ 0:00 postgres: postgres pgbench [local] UPDATE waiting
8110 pts/0 S+ 0:00 postgres: postgres pgbench [local] UPDATE waiting
8111 pts/0 S+ 0:00 postgres: postgres pgbench [local] COMMIT
8119 ? S 0:00 [pdflush]
8147 ? S< 0:00 [kcopyd]
8179 ? S 0:00 [kjournald]
8188 pts/1 R+ 0:00 ps ax
# cat /etc/issue
Red Hat Enterprise Linux ES release 4 (Nahant)
Kernel \r on an \m
#
------------------------------------
--
NAGAYASU Satoshi <nagayasus at nttdata.co.jp>
More information about the linux-lvm
mailing list