2014-02-24 16:09 GMT+01:00 Andres Freund <and...@2ndquadrant.com>: > On 2014-02-23 20:04:39 +0100, Pavel Stehule wrote: > > 354246.00 93.0% s_lock > > /usr/lib/postgresql/9.2/bin/postgres > > 10503.00 2.8% LWLockRelease > > /usr/lib/postgresql/9.2/bin/postgres > > 8802.00 2.3% LWLockAcquire > > /usr/lib/postgresql/9.2/bin/postgres > > 828.00 0.2% _raw_spin_lock > > [kernel.kallsyms] > > 559.00 0.1% _raw_spin_lock_irqsave > > [kernel.kallsyms] > > 340.00 0.1% switch_mm > > [kernel.kallsyms] > > 305.00 0.1% poll_schedule_timeout > > [kernel.kallsyms] > > 274.00 0.1% native_write_msr_safe > > [kernel.kallsyms] > > 257.00 0.1% _raw_spin_lock_irq > > [kernel.kallsyms] > > 238.00 0.1% apic_timer_interrupt > > [kernel.kallsyms] > > 236.00 0.1% __schedule > > [kernel.kallsyms] > > 213.00 0.1% HeapTupleSatisfiesMVCC > > > > With systemtap I got list of spin locks > > > > light weight locks > > lockname mode count avg (time) > > DynamicLocks Exclusive 2804 1025 > > DynamicLocks Shared 106 130 > > ProcArrayLock Exclusive 63 963551 > > ProcArrayLock Shared 50 4160 > > LockMgrLocks Exclusive 18 159 > > IndividualLock Exclusive 2 7 > > > > There is relative few very long ProcArrayLocks lwlocks > > It's odd that there are so many exclusive acquisition > ProcArrayLocks... A hierarchical profile would be interesting. I'd > suggest compiling postgres with -fno-omit-frame-pointer and doing a > profile with perf. > > I had no experience with perf, so maybe it is not what you want
- 19.59% postmaster postgres - s_lock - 55.06% LWLockAcquire + 99.84% TransactionIdIsInProgress - 44.63% LWLockRelease + 99.91% TransactionIdIsInProgress - 13.84% postmaster postgres - tas - 97.97% s_lock + 55.01% LWLockAcquire + 44.99% LWLockRelease - 1.10% LWLockAcquire + 99.89% TransactionIdIsInProgress - 0.93% LWLockRelease + 99.93% TransactionIdIsInProgress - 19.59% postmaster postgres - s_lock - 55.06% LWLockAcquire - 99.84% TransactionIdIsInProgress HeapTupleSatisfiesMVCC heap_hot_search_buffer index_fetch_heap index_getnext get_actual_variable_range ineq_histogram_selectivity scalarineqsel mergejoinscansel cached_scansel initial_cost_mergejoin try_mergejoin_path sort_inner_and_outer add_paths_to_joinrel make_join_rel make_rels_by_clause_joins join_search_one_level standard_join_search make_rel_from_joinlist make_one_rel query_planner grouping_planner subquery_planner standard_planner planner pg_plan_query pg_plan_queries BuildCachedPlan GetCachedPlan exec_bind_message PostgresMain ExitPostmaster BackendStartup ServerLoop PostmasterMain startup_hacks regards Pavel Greetings, > > Andres Freund > > -- > Andres Freund http://www.2ndQuadrant.com/ > PostgreSQL Development, 24x7 Support, Training & Services >