Thank you for your reply.
1. I'm sure the io is not problem .but  I didn't record the IO status at that 
time.
2.what is THP compaction ? How can i rule this out?
3. explain 
 tshow=> explain  select count(t.*)  from tshow.res_room_weight 
t,tshow.res_room_info r 
tshow->   where t.subcatlg_id=46 
tshow->   and t.roomid = r.actorid
tshow->   and r.levels>=0;
                                        QUERY PLAN                              
          
------------------------------------------------------------------------------------------
 Aggregate  (cost=24581.50..24581.51 rows=1 width=60)
   ->  Hash Join  (cost=1737.27..24572.14 rows=3744 width=60)
         Hash Cond: (r.actorid = t.roomid)
         ->  Seq Scan on res_room_info r  (cost=0.00..22322.19 rows=22364 
width=4)
               Filter: (levels >= 0)
         ->  Hash  (cost=1689.86..1689.86 rows=3793 width=64)
               ->  Seq Scan on res_room_weight t  (cost=0.00..1689.86 rows=3793 
width=64)
                     Filter: (subcatlg_id = 46)

4. next i will use perf top to  capture during load is essential



657985...@qq.com
 
From: Merlin Moncure
Date: 2015-10-28 02:35
To: Bill Moran
CC: 657985...@qq.com; pgsql-general
Subject: Re: [GENERAL] ??: postgres cpu 100% need help
On Tue, Oct 27, 2015 at 12:14 PM, Bill Moran <wmo...@potentialtech.com> wrote:
> On Tue, 27 Oct 2015 11:30:45 +0800
> "657985...@qq.com" <657985...@qq.com> wrote:
>
>> Dear sir:
>>          Recently a wired question about postgresql database really bothered 
>> me a lot, so i really need your help. Here is the problem, in the most 
>> situations the postgre database work very well,  Average 3500tps/s per day, 
>> the cpu usage of its process is 3%~10% and every query can be responsed in 
>> less than 20ms, but sometimes the cpu usages of its process can suddenly 
>> grow up to 90%+ , at that time a simple query can cost  2000+ms. ps: My 
>> postgresql version is 9.3.5 and the database is oltp  server.
>
> 9.3.5 is pretty old, you should probably schedule an upgrade.
>
>>  shared_buffers                                     | 25GB
>
> Try setting this to 16GB. It's been a while since I tested on
> large-memory/high-load systems, but I seem to remember that
> shared_buffers above 16G could cause these sorts of intermittant
> stalls.
>
> If that doesn't improve the situation, you'll probably need to
> provide more details, specifically the layout of the table in
> question, as well as the queries that are active when the
> problem occurs, and the contents of the pg_locks table when
> the problem is occurring.
 
possible culprits:
*) io based problems (check iowait, rule this out first)
*) THP compaction (rule this out second)
*) runaway query plan
*) concurrency problems within postgres itself (perf top capture
during load is essential)
 
maybe some other things I'm not thinking of.
 
merlin
 

Reply via email to