Robert Haas <robertmhaas@gmail.com> wrote:
> Any chance you can run oprofile (on either branch, don't really
> care) against the 32 client test and post the results?
Besides the other changes we discussed, I boosted scale to 150 and
ran at READ COMMITTED isolation level (because all threads promptly
crashed and burned at REPEATABLE READ -- we desperately need a
pgbench option to retry a transaction on serialization failure).
The oprofile hot spots at half a percent or higher:
CPU: Intel Core/i7, speed 2262 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with
a unit mask of 0x00 (No unit mask) count 100000
samples % image name symbol name
933394 4.9651 postgres AllocSetAlloc
848476 4.5134 postgres base_yyparse
719515 3.8274 postgres SearchCatCache
461275 2.4537 postgres hash_search_with_hash_value
426411 2.2682 postgres GetSnapshotData
322938 1.7178 postgres LWLockAcquire
322236 1.7141 postgres core_yylex
305471 1.6249 postgres MemoryContextAllocZeroAligned
281543 1.4976 postgres expression_tree_walker
270241 1.4375 postgres XLogInsert
234899 1.2495 postgres MemoryContextAlloc
210137 1.1178 postgres ScanKeywordLookup
184857 0.9833 postgres heap_page_prune
173608 0.9235 postgres hash_any
153011 0.8139 postgres _bt_compare
144538 0.7689 postgres nocachegetattr
131466 0.6993 postgres fmgr_info_cxt_security
131001 0.6968 postgres grouping_planner
130808 0.6958 postgres LWLockRelease
124112 0.6602 postgres PinBuffer
120745 0.6423 postgres LockAcquireExtended
112992 0.6010 postgres ExecInitExpr
112830 0.6002 postgres lappend
112311 0.5974 postgres new_list
110368 0.5871 postgres check_stack_depth
106036 0.5640 postgres AllocSetFree
102565 0.5456 postgres MemoryContextAllocZero
94689 0.5037 postgres SearchSysCache
Do you want line numbers or lower percentages?
Two runs:
tps = 21946.961196 (including connections establishing)
tps = 22911.873227 (including connections establishing)
For write transactions, that seems pretty respectable.
-Kevin