Hello,
I have master - slave replication hot standby. Both server are linux
slackware64 current with postgresql 9.4.4.
Today when I logged to check some things on slave server I see on top
memory taken 26%. That was strange for me and I restart server.
Well, I checked after 40 minute and I see again replication process is
little growing. For 10 min about 1.0.
postgres 14162 0.0 0.7 6514656 190684 ? S 11:50 0:00
/usr/bin/postgres -D /var/lib/postgres/database -F
postgres 14163 0.4 5.4 6517856 1341268 ? Ss 11:50 0:26 \_
postgres: startup process recovering 00000001000005E50000005E
postgres 14166 0.1 5.4 6517876 1335980 ? Ss 11:50 0:09 \_
postgres: checkpointer process
postgres 14168 0.0 0.2 6517732 53276 ? Ss 11:50 0:01 \_
postgres: writer process
postgres 14180 0.0 0.0 29888 2864 ? Ss 11:50 0:01 \_
postgres: stats collector process
postgres 14183 0.2 0.0 6522488 5584 ? Ss 11:50 0:15 \_
postgres: wal receiver process streaming 5E5/5EE36000
Today our system is little bit average but slave server receive one
wal file every minute. As you can see checkpointer process and
recovering is 5.4% and until I write the email,
I check them again and now is 6.0
postgres 14162 0.0 0.7 6514656 190684 ? S 11:50 0:00
/usr/bin/postgres -D /var/lib/postgres/database -F
postgres 14163 0.4 6.0 6517856 1499868 ? Ss 11:50 0:30 \_
postgres: startup process recovering 00000001000005E500000072
postgres 14166 0.1 6.0 6517876 1497064 ? Ss 11:50 0:10 \_
postgres: checkpointer process
postgres 14168 0.0 0.2 6517732 53276 ? Ss 11:50 0:01 \_
postgres: writer process
postgres 14180 0.0 0.0 29888 2864 ? Ss 11:50 0:01 \_
postgres: stats collector process
postgres 14183 0.2 0.0 6522488 5584 ? Ss 11:50 0:18 \_
postgres: wal receiver process streaming 5E5/72B49718
I have free memory:
Mem: 24634464k total, 14674532k used, 9959932k free, 324108k
buffers
Swap: 6589196k total, 1872k used, 6587324k free, 11819140k cached
I try to use strace on process:
# strace -p 14163
lseek(9, 0, SEEK_END) = 381943808
lseek(23, 0, SEEK_END) = 376832
lseek(5, 3563520, SEEK_SET) = 3563520
read(5,
"~\320\5\0\1\0\0\0\0`6C\345\5\0\0\344\7\0\0\0\0\0\0\0\0\0\0\333I\f\0"...,
8192) = 8192
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
lseek(9, 0, SEEK_END) = 381943808
lseek(5, 3571712, SEEK_SET) = 3571712
read(5,
"~\320\5\0\1\0\0\0\0\2006C\345\5\0\0^\6\0\0\0\0\0\0Ja.\0\20\0\220h"...,
8192) = 8192
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
lseek(10, 0, SEEK_END) = 186392576
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
lseek(11, 0, SEEK_END) = 182566912
read(3, 0x7ffd2d7a60d0, 16) = -1 EAGAIN (Resource
temporarily unavailable)
poll([{fd=3, events=POLLIN}], 1, 5000) = ? ERESTART_RESTARTBLOCK
(Interrupted by signal)
--- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_USER, si_pid=14183,
si_uid=1000} ---
write(4, "\0", 1) = 1
rt_sigreturn({mask=[]}) = -1 EINTR (Interrupted system
call)
read(3, "\0", 16) = 1
read(6, 0x7ffd2d7a611f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
lseek(5, 3579904, SEEK_SET) = 3579904
read(5,
"~\320\5\0\1\0\0\0\0\2406C\345\5\0\0\232\5\0\0\0\0\0\0\0\0\0\0*\231\1\0"...,
8192) = 8192
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
lseek(12, 0, SEEK_END) = 203612160
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
lseek(13, 0, SEEK_END) = 331071488
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
lseek(14, 0, SEEK_END) = 193331200
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
lseek(15, 0, SEEK_END) = 271171584
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
lseek(16, 0, SEEK_END) = 187580416
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
lseek(17, 0, SEEK_END) = 193257472
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
lseek(18, 0, SEEK_END) = 277381120
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
lseek(19, 0, SEEK_END) = 199884800
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
lseek(20, 0, SEEK_END) = 193396736
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
lseek(21, 0, SEEK_END) = 204808192
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
lseek(22, 0, SEEK_END) = 193355776
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
lseek(9, 0, SEEK_END) = 381943808
lseek(23, 0, SEEK_END) = 376832
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
lseek(9, 0, SEEK_END) = 381943808
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
lseek(24, 0, SEEK_END) = 374423552
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
lseek(25, 0, SEEK_END) = 1777664
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
lseek(24, 0, SEEK_END) = 374423552
read(6, 0x7ffd2d7a672f, 1) = -1 EAGAIN (Resource
temporarily unavailable)
read(3, 0x7ffd2d7a60d0, 16) = -1 EAGAIN (Resource
temporarily unavailable)
poll([{fd=3, events=POLLIN}], 1, 5000) = ? ERESTART_RESTARTBLOCK
(Interrupted by signal)
--- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_USER, si_pid=14183,
si_uid=1000} ---
write(4, "\0", 1) = 1
rt_sigreturn({mask=[]}) = -1 EINTR (Interrupted system
call)
and continue...
That is the slave server only for mirroring database no any
connections and query ever run on him.
My question is this normal ?
Regards,
Hristo Simeonov