Repeated semop calls

From: "Anand Kumar, Karthik" <Karthik(dot)AnandKumar(at)classmates(dot)com>
To: PostgreSQL General <pgsql-general(at)postgresql(dot)org>
Subject: Repeated semop calls
Date: 2014-06-26 20:03:48
Message-ID: CFD1CAB2.8474A%karthik.anandkumar@classmates.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

We run postgres 9.3.3 on Centos 6.3, kernel 2.6.32-431.3.1. Every once in a while, we see postgres processes spinning on semop:

Here is an output from an strace on a delete process:

root(at)site-db01a:~ # strace -p 53744
Process 53744 attached - interrupt to quit
semop(21692498, {{6, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(20480045, {{15, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(20185124, {{3, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(20185124, {{3, 1, 0}}, 1) = 0
semop(20185124, {{3, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21135425, {{14, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21692498, {{6, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21266501, {{4, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21692498, {{6, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(20250662, {{0, 1, 0}}, 1) = 0
semop(21135425, {{14, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(20250662, {{0, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21266501, {{6, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(20185124, {{3, 1, 0}}, 1) = 0
semop(20185124, {{3, 1, 0}}, 1) = 0
semop(20250662, {{0, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21626960, {{7, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(20185124, {{3, 1, 0}}, 1) = 0
semop(21266501, {{4, 1, 0}}, 1) = 0
semop(21266501, {{4, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(20119586, {{5, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(20185124, {{3, 1, 0}}, 1) = 0
semop(21200963, {{5, 1, 0}}, 1) = 0
semop(21135425, {{14, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21233732, {{9, 1, 0}}, 1) = 0
semop(21266501, {{7, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(20185124, {{3, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21266501, {{4, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(20185124, {{3, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21135425, {{14, 1, 0}}, 1) = 0
semop(20185124, {{3, 1, 0}}, 1) = 0
semop(21233732, {{9, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(20774966, {{7, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(20185124, {{3, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21233732, {{9, 1, 0}}, 1) = 0
semop(20185124, {{3, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(20185124, {{3, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0

(output truncated)

semop(21233732, {{9, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21168194, {{10, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21168194, {{10, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21168194, {{10, 1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21561422, {{12, -1, 0}}, 1) = 0
semop(21168194, {{10, 1, 0}}, 1) = 0
sendto(3, "<134>Jun 26 12:23:30 postgres[53"..., 495, MSG_NOSIGNAL, NULL, 0) = 495
sendto(3, "<134>Jun 26 12:23:30 postgres[53"..., 258, MSG_NOSIGNAL, NULL, 0) = 258
sendto(10, "\2\0\0\0000\2\0\0001(at)\0\0\5\0\0\0\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 560, 0, NULL, 0) = 560
sendto(11, "1\0\0\0\0042\0\0\0\4n\0\0\0\4C\0\0\0\rDELETE 0\0Z\0\0"..., 35, 0, NULL, 0) = 35
recvfrom(11, "P\0\0\1\220\0delete from sym_data where"..., 8192, 0, NULL, NULL) = 576
lseek(27, 0, SEEK_END) = 499105792
lseek(28, 0, SEEK_END) = 19578880
lseek(29, 0, SEEK_END) = 4120576
lseek(30, 0, SEEK_END) = 20733952
lseek(31, 0, SEEK_END) = 20070400
lseek(32, 0, SEEK_END) = 491520
lseek(14, 0, SEEK_END) = 115073024
lseek(21, 0, SEEK_END) = 158318592
lseek(49, 0, SEEK_END) = 45277184
lseek(15, 0, SEEK_END) = 252067840
lseek(16, 0, SEEK_END) = 22503424
lseek(44, 0, SEEK_END) = 35635200
lseek(45, 0, SEEK_END) = 64151552
lseek(14, 0, SEEK_END) = 115073024
lseek(21, 0, SEEK_END) = 158318592
lseek(49, 0, SEEK_END) = 45277184
semop(21561422, {{12, -1, 0}}, 1) = 0
lseek(27, 0, SEEK_END) = 499105792
sendto(11, "1\0\0\0\0042\0\0\0\4n\0\0\0\4C\0\0\0\rDELETE 0\0Z\0\0"..., 35, 0, NULL, 0) = 35
recvfrom(11, "P\0\0\1\220\0delete from sym_data where"..., 8192, 0, NULL, NULL) = 576
lseek(27, 0, SEEK_END) = 499105792
lseek(28, 0, SEEK_END) = 19578880
lseek(29, 0, SEEK_END) = 4120576
lseek(30, 0, SEEK_END) = 20733952
lseek(31, 0, SEEK_END) = 20070400
lseek(32, 0, SEEK_END) = 491520
lseek(14, 0, SEEK_END) = 115073024
lseek(21, 0, SEEK_END) = 158318592
lseek(49, 0, SEEK_END) = 45277184
lseek(15, 0, SEEK_END) = 252067840
lseek(16, 0, SEEK_END) = 22503424
lseek(44, 0, SEEK_END) = 35635200
lseek(45, 0, SEEK_END) = 64151552
lseek(14, 0, SEEK_END) = 115073024
lseek(21, 0, SEEK_END) = 158318592
lseek(49, 0, SEEK_END) = 45277184
lseek(27, 0, SEEK_END) = 499105792

Running a perf on the process showed this:

Samples: 33K of event 'cycles', Event count (approx.): 20693251070

26.16% postmaster postgres [.] 0x0000000000188450

21.13% postmaster postgres [.] hash_search_with_hash_value

10.47% postmaster postgres [.] heap_page_prune_opt

4.21% postmaster postgres [.] LWLockAcquire

3.71% postmaster postgres [.] slot_getattr

1.97% postmaster postgres [.] HeapTupleSatisfiesMVCC

1.82% postmaster postgres [.] LWLockRelease

1.48% postmaster postgres [.] ExecProject

1.19% postmaster postgres [.] bpcharne

0.98% postmaster postgres [.] MemoryContextReset

0.90% postmaster postgres [.] ExecScan

0.89% postmaster postgres [.] pglz_decompress

0.79% postmaster postgres [.] hash_any

0.77% postmaster postgres [.] LookupTupleHashEntry

0.66% postmaster postgres [.] heap_form_minimal_tuple

0.65% postmaster postgres [.] ExecProcNode

0.63% postmaster [kernel.kallsyms] [k] _spin_lock

0.58% postmaster postgres [.] heap_fill_tuple

0.52% postmaster postgres [.] ExecClearTuple

0.46% postmaster libc-2.12.so [.] __memcmp_sse4_1

0.39% postmaster postgres [.] SearchCatCache

0.38% postmaster postgres [.] heap_compute_data_size

0.35% postmaster postgres [.] ExecQual

0.35% postmaster postgres [.] ReadBufferExtended

0.34% postmaster postgres [.] palloc0

0.34% postmaster libc-2.12.so [.] memcpy

0.31% postmaster postgres [.] LockBuffer

0.28% postmaster postgres [.] deconstruct_array

0.27% postmaster postgres [.] ResourceOwnerForgetBuffer

0.25% postmaster [kernel.kallsyms] [k] sys_semtimedop

0.25% postmaster postgres [.] base_yyparse

0.25% postmaster postgres [.] hash_uint32

0.23% postmaster postgres [.] FunctionCall1Coll

0.23% postmaster postgres [.] heap_getnext

0.22% postmaster postgres [.] ReleaseBuffer

0.22% postmaster [kernel.kallsyms] [k] ipc_has_perm

0.21% postmaster postgres [.] check_stack_depth

0.21% postmaster postgres [.] hash_search

0.20% postmaster [kernel.kallsyms] [k] native_write_msr_safe

0.20% postmaster postgres [.] GetSnapshotData

0.20% postmaster libc-2.12.so [.] _int_malloc

0.19% postmaster [kernel.kallsyms] [k] schedule

0.19% postmaster postgres [.] ExecStoreTuple

0.18% postmaster [kernel.kallsyms] [k] update_curr

0.18% postmaster postgres [.] pgstat_init_function_usage

0.18% postmaster libc-2.12.so [.] __strlen_sse42

0.17% postmaster postgres [.] copyObject

0.17% postmaster postgres [.] s_lock

0.17% postmaster postgres [.] MemoryContextAllocZeroAligned

0.17% postmaster postgres [.] palloc

0.17% postmaster [kernel.kallsyms] [k] avc_has_perm_noaudit

0.16% postmaster postgres [.] core_yylex

0.15% postmaster postgres [.] pgstat_end_function_usage

0.15% postmaster libc-2.12.so [.] __strcmp_sse42

0.15% postmaster [kernel.kallsyms] [k] task_rq_lock

0.14% postmaster postgres [.] expression_tree_walker

0.14% postmaster pg_stat_statements.so [.] 0x00000000000024f3

0.14% postmaster postgres [.] FunctionCall2Coll

0.12% postmaster postgres [.] CheckForSerializableConflictOut

0.12% postmaster [kernel.kallsyms] [k] select_task_rq_fair

0.12% postmaster [kernel.kallsyms] [k] __audit_syscall_exit

0.11% postmaster postgres [.] nocachegetattr

0.11% postmaster postgres [.] pg_detoast_datum_packed

0.10% postmaster [kernel.kallsyms] [k] try_to_wake_up

0.10% postmaster libc-2.12.so [.] _int_free

0.10% postmaster postgres [.] ResourceOwnerEnlargeBuffers

0.10% postmaster postgres [.] slot_attisnull

0.09% postmaster postgres [.] ExecStoreVirtualTuple

0.09% postmaster postgres [.] slot_getsomeattrs

0.08% postmaster [kernel.kallsyms] [k] try_atomic_semop

0.08% postmaster [kernel.kallsyms] [k] tcp_ack

0.08% postmaster postgres [.] get_hash_value

0.08% postmaster postgres [.] BufTableLookup

0.08% postmaster libc-2.12.so [.] __memset_sse2

0.08% postmaster [kernel.kallsyms] [k] dequeue_entity

0.08% postmaster postgres [.] ScanKeywordLookup

0.08% postmaster [kernel.kallsyms] [k] kmem_cache_free

0.08% postmaster [kernel.kallsyms] [k] tcp_recvmsg

0.08% postmaster [kernel.kallsyms] [k] _spin_lock_irq

0.07% postmaster libc-2.12.so [.] malloc

0.07% postmaster [kernel.kallsyms] [k] idr_find

0.07% postmaster [tg3] [k] tg3_poll_work

0.07% postmaster [kernel.kallsyms] [k] enqueue_entity

0.07% postmaster postgres [.] PostgresMain

0.07% postmaster [kernel.kallsyms] [k] unroll_tree_refs

0.07% postmaster postgres [.] ExecCopySlotMinimalTuple

0.07% postmaster [kernel.kallsyms] [k] kfree

0.06% postmaster postgres [.] hashint8

0.06% postmaster [kernel.kallsyms] [k] __do_softirq

0.06% postmaster [kernel.kallsyms] [k] dequeue_task_fair

0.06% postmaster postgres [.] DirectFunctionCall1Coll

0.06% postmaster [kernel.kallsyms] [k] tcp_rcv_established

0.06% postmaster [kernel.kallsyms] [k] update_queue

0.06% postmaster postgres [.] pg_encoding_mbcliplen

0.06% postmaster [kernel.kallsyms] [k] resched_task

0.06% postmaster [kernel.kallsyms] [k] copy_user_generic_string

0.06% postmaster postgres [.] LockAcquireExtended

0.06% postmaster [kernel.kallsyms] [k] find_busiest_group

0.06% postmaster postgres [.] ResourceOwnerRememberBuffer

0.05% postmaster [kernel.kallsyms] [k] enqueue_task

0.05% postmaster postgres [.] mcv_selectivity

0.05% postmaster [kernel.kallsyms] [k] thread_return

0.05% postmaster [kernel.kallsyms] [k] pid_vnr

0.05% postmaster [kernel.kallsyms] [k] audit_syscall_entry

0.05% postmaster [kernel.kallsyms] [k] __local_bh_enable

0.05% postmaster [kernel.kallsyms] [k] rcu_procesa_gp_end

I ran an ipcs and was able to see the semaphore, and get its id:

root(at)site-db01a:~ # ipcs -c -s | grep 21561422

21561422 600 postgres postgres postgres postgres

But I’m not sure where to go next. Is there a resource contention that this is indicating, and if so, any way to tell what the contention is on?

~Karthik

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Ken Tanzer 2014-06-26 20:17:05 Re: Questions about daterange() function
Previous Message Tom Lane 2014-06-26 18:17:19 Re: python modul pre-import to avoid importing each time