my production program data:
...
gc 149 @91.330s 6%: 6.8+557+0.50+1.0+10 ms clock, 20+557+0+1841/0/1304+31 
ms cpu, 3694->3793->2016 MB, 3789 MB goal, 48 P
gc 150 @92.012s 6%: 2.9+505+0.32+0.58+9.5 ms clock, 
11+505+0+1756/0.014/1574+38 ms cpu, 3739->3805->1987 MB, 3835 MB goal, 48 P
gc 151 @92.632s 6%: 5.4+420+0.38+0.25+9.9 ms clock, 
21+420+0+1690/0.17/1241+39 ms cpu, 3748->3810->1993 MB, 3844 MB goal, 48 P
gc 152 @93.187s 6%: 7.3+471+0.14+0.21+10 ms clock, 
29+471+0+1792/0.001/978+42 ms cpu, 3762->3861->1989 MB, 3858 MB goal, 48 P
gc 153 @93.806s 6%: 2.7+481+0.20+0.51+10 ms clock, 
10+481+0+1807/0.094/1261+40 ms cpu, 3685->3727->1965 MB, 3780 MB goal, 48 P
gc 154 @94.408s 6%: 3.3+477+0.46+0.54+10 ms clock, 
13+477+0+1697/0.007/1497+41 ms cpu, 3751->3848->2043 MB, 3847 MB goal, 48 P
gc 155 @95.011s 6%: 3.2+534+0.83+0.46+9.7 ms clock, 
12+534+0+1780/0.008/1457+38 ms cpu, 3794->3912->2068 MB, 3891 MB goal, 48 P
gc 156 @95.660s 6%: 5.4+504+0.96+0.57+9.5 ms clock, 21+504+0+1653/0/1604+38 
ms cpu, 3802->3900->2075 MB, 3899 MB goal, 48 P
gc 157 @96.290s 6%: 2.7+482+0.68+0.38+10 ms clock, 
10+482+0+1732/0.011/1160+41 ms cpu, 3852->3909->2043 MB, 3950 MB goal, 48 P
...
gc 375 @272.575s 8%: 4.1+628+0.75+0.75+15 ms clock, 
24+628+0+5656/0.006/2881+93 ms cpu, 5847->5933->3115 MB, 5997 MB goal, 48 P
gc 376 @273.400s 8%: 3.7+739+0.36+0.96+15 ms clock, 
22+739+0+4737/0.50/3957+94 ms cpu, 5907->6032->3161 MB, 6058 MB goal, 48 P
gc 377 @274.333s 8%: 3.2+700+0.22+0.41+14 ms clock, 
19+700+0+6550/0.011/3101+88 ms cpu, 5920->6056->3170 MB, 6072 MB goal, 48 P
gc 378 @275.219s 8%: 3.1+681+0.33+0.61+16 ms clock, 
18+681+0+5050/0.002/3335+99 ms cpu, 5922->6036->3155 MB, 6073 MB goal, 48 P
gc 379 @276.085s 8%: 3.2+764+0.38+0.83+15 ms clock, 
19+764+0+4807/0.001/3859+91 ms cpu, 5932->6062->3170 MB, 6084 MB goal, 48 P
gc 380 @277.032s 8%: 3.0+731+0.44+0.61+14 ms clock, 
18+731+0+6406/0.002/3522+89 ms cpu, 5931->6067->3175 MB, 6083 MB goal, 48 P
gc 381 @277.947s 8%: 3.1+739+0.30+0.45+15 ms clock, 
19+739+0+4654/0.001/3375+90 ms cpu, 5930->6063->3160 MB, 6082 MB goal, 48 P
gc 382 @278.871s 8%: 3.3+645+0.42+0.57+15 ms clock, 
19+645+0+4512/0.020/3602+91 ms cpu, 5905->5990->3121 MB, 6056 MB goal, 48 P
...
gc 475 @368.078s 9%: 3.3+790+0.31+0.56+19 ms clock, 
20+790+0+4356/0.001/5125+117 ms cpu, 6137->6255->3274 MB, 6294 MB goal, 48 P
gc 476 @369.047s 9%: 3.3+695+2.3+0.37+16 ms clock, 
20+695+0+7353/0.37/4180+97 ms cpu, 6157->6307->3335 MB, 6314 MB goal, 48 P
gc 477 @369.922s 9%: 3.4+754+0.17+0.38+17 ms clock, 
20+754+0+4769/0.64/5090+103 ms cpu, 6215->6385->3378 MB, 6374 MB goal, 48 P
gc 478 @370.857s 9%: 3.6+727+0.59+0.43+16 ms clock, 
22+727+0+4726/0.009/5578+99 ms cpu, 6258->6405->3405 MB, 6417 MB goal, 48 P
gc 479 @371.766s 9%: 3.3+778+0.14+0.71+17 ms clock, 
20+778+0+4581/0.031/5694+107 ms cpu, 6354->6492->3414 MB, 6517 MB goal, 48 P
gc 480 @372.729s 9%: 3.4+796+0.27+0.63+16 ms clock, 
20+796+0+4576/0.070/5559+101 ms cpu, 6394->6529->3417 MB, 6557 MB goal, 48 P
gc 481 @373.712s 9%: 3.3+771+0.12+0.41+16 ms clock, 
20+771+0+4918/0.001/5195+101 ms cpu, 6404->6521->3399 MB, 6568 MB goal, 48 P
gc 482 @374.667s 9%: 3.3+763+0.37+0.29+16 ms clock, 
20+763+0+4805/0.056/5169+100 ms cpu, 6404->6547->3422 MB, 6568 MB goal, 48 P
...
gc 508 @401.881s 10%: 3.5+715+0.15+0.47+19 ms clock, 
21+715+0+4336/0.18/5210+114 ms cpu, 6240->6385->3394 MB, 6400 MB goal, 48 P
gc 509 @402.781s 10%: 3.8+842+0.17+0.31+18 ms clock, 
22+842+0+5586/0.001/5674+110 ms cpu, 6337->6478->3418 MB, 6500 MB goal, 48 P
gc 510 @403.798s 10%: 3.8+830+0.36+0.30+17 ms clock, 
23+830+0+4356/0/5296+105 ms cpu, 6394->6502->3391 MB, 6558 MB goal, 48 P
gc 511 @404.808s 10%: 3.4+830+0.70+0.42+18 ms clock, 
20+830+0+4347/0.065/5628+110 ms cpu, 6407->6509->3382 MB, 6571 MB goal, 48 P
gc 512 @405.819s 10%: 3.6+832+0.65+0.46+19 ms clock, 
22+832+0+4450/0.17/5178+119 ms cpu, 6400->6545->3428 MB, 6563 MB goal, 48 P
gc 513 @406.827s 10%: 3.4+784+0.17+0.27+17 ms clock, 
20+784+0+4530/0.045/5297+104 ms cpu, 6404->6542->3431 MB, 6568 MB goal, 48 P
gc 514 @407.788s 10%: 4.3+735+0.63+1.2+19 ms clock, 
26+735+0+4576/0.009/5267+115 ms cpu, 6424->6536->3383 MB, 6589 MB goal, 48 P
gc 515 @408.717s 10%: 8.0+783+0.30+0.25+18 ms clock, 
48+783+0+5859/0.012/6100+111 ms cpu, 6382->6536->3428 MB, 6544 MB goal, 48 P
gc 516 @409.685s 10%: 4.1+712+0.76+0.70+18 ms clock, 
25+712+0+5675/0.018/5834+111 ms cpu, 6385->6507->3421 MB, 6549 MB goal, 48 P
gc 517 @410.567s 10%: 3.9+806+0.40+0.74+19 ms clock, 
23+806+0+5823/0.003/5744+115 ms cpu, 6437->6503->3399 MB, 6602 MB goal, 48 P
...
gc 638 @547.759s 10%: 9.0+877+0.16+0.36+24 ms clock, 
45+877+0+7723/0.25/7339+121 ms cpu, 7527->7693->4028 MB, 7719 MB goal, 48 P
gc 639 @548.866s 10%: 7.9+935+0.75+0.61+25 ms clock, 
39+935+0+6085/0.002/6937+129 ms cpu, 7532->7629->3958 MB, 7724 MB goal, 48 P
gc 640 @550.026s 10%: 5.3+972+0.27+0.34+24 ms clock, 
26+972+0+6123/0.49/7629+123 ms cpu, 7531->7692->4021 MB, 7722 MB goal, 48 P
gc 641 @551.214s 10%: 7.7+889+0.51+0.35+27 ms clock, 
38+889+0+7709/0.035/6185+137 ms cpu, 7525->7639->3984 MB, 7718 MB goal, 48 P
gc 642 @552.320s 10%: 10+887+0.35+0.29+24 ms clock, 
53+887+0+5841/0.006/7909+123 ms cpu, 7547->7670->3996 MB, 7740 MB goal, 48 P
gc 643 @553.437s 10%: 8.0+963+0.55+0.49+24 ms clock, 
40+963+0+6521/0.16/6691+120 ms cpu, 7554->7700->4034 MB, 7748 MB goal, 48 P
...
gc 700 @630.556s 11%: 6.5+900+0.43+0.75+30 ms clock, 
32+900+0+6964/0.069/9088+154 ms cpu, 8151->8311->4346 MB, 8360 MB goal, 48 P
gc 701 @631.750s 11%: 9.2+1075+0.40+0.21+32 ms clock, 
46+1075+0+6838/0.004/8123+161 ms cpu, 8162->8348->4357 MB, 8371 MB goal, 48 
P
gc 702 @633.135s 11%: 6.5+1093+0.24+0.37+31 ms clock, 
32+1093+0+6754/0.018/8033+157 ms cpu, 8134->8263->4300 MB, 8342 MB goal, 48 
P
gc 703 @634.514s 11%: 5.8+969+0.86+2.0+31 ms clock, 
29+969+0+11542/0.068/6350+157 ms cpu, 8137->8256->4275 MB, 8345 MB goal, 48 
P
gc 704 @635.759s 11%: 5.6+1113+0.42+0.41+31 ms clock, 
34+1113+0+8972/0.015/8845+188 ms cpu, 8105->8247->4299 MB, 8312 MB goal, 48 
P
gc 705 @637.142s 11%: 10+1197+0.58+0.32+31 ms clock, 
61+1197+0+7186/0.019/9007+191 ms cpu, 8106->8242->4303 MB, 8313 MB goal, 48 
P
gc 706 @638.615s 11%: 6.3+939+0.60+0.65+29 ms clock, 
37+939+0+6967/0.024/8398+177 ms cpu, 8127->8233->4298 MB, 8335 MB goal, 48 P
gc 707 @639.814s 11%: 9.9+1101+0.43+0.43+30 ms clock, 
59+1101+0+7027/0.001/8864+181 ms cpu, 8177->8359->4382 MB, 8386 MB goal, 48 
P
gc 708 @641.202s 11%: 9.2+1025+0.50+0.31+32 ms clock, 
55+1025+0+9983/0.013/9124+194 ms cpu, 8189->8363->4389 MB, 8399 MB goal, 48 
P
gc 709 @642.498s 11%: 9.4+1074+0.31+0.53+29 ms clock, 
56+1074+0+7404/0.004/9114+178 ms cpu, 8227->8380->4357 MB, 8438 MB goal, 48 
P
gc 710 @643.854s 11%: 5.7+1033+0.40+0.38+30 ms clock, 
34+1033+0+9576/0.005/9297+183 ms cpu, 8200->8351->4324 MB, 8410 MB goal, 48 
P
gc 711 @645.156s 11%: 8.1+746+0.14+0.43+31 ms clock, 
49+746+0+9968/0.009/8210+191 ms cpu, 8142->8241->4296 MB, 8349 MB goal, 48 P


CPU profile
    flat  flat%   sum%        cum   cum%
  1.71mins 20.91% 20.91%   1.71mins 20.91%  runtime.futex
  0.77mins  9.38% 30.29%   0.77mins  9.38%  runtime.memmove
  0.68mins  8.30% 38.60%   1.78mins 21.70%  runtime.scanobject
  0.68mins  8.29% 46.89%   0.68mins  8.29%  runtime.cas64
  0.41mins  4.98% 51.87%   1.26mins 15.40%  runtime.gcDrainUntilPreempt
  0.36mins  4.42% 56.29%   0.36mins  4.43%  runtime.atomicload64
  0.30mins  3.62% 59.91%   0.99mins 12.10%  runtime.greyobject
  0.30mins  3.62% 63.53%   0.30mins  3.62%  runtime.heapBitsForObject
  0.22mins  2.68% 66.21%   0.22mins  2.68%  runtime.atomicor8
  0.17mins  2.06% 68.27%   0.17mins  2.06%  runtime.memclr
  0.16mins  1.89% 70.16%   0.16mins  1.89%  runtime.xchg
  0.15mins  1.87% 72.03%   0.15mins  1.87%  runtime.xadd
  0.15mins  1.82% 73.85%   0.15mins  1.82%  runtime.procyield
  0.14mins  1.70% 75.55%   1.27mins 15.47%  runtime.lock
  0.14mins  1.65% 77.20%   0.15mins  1.83%  runtime.mSpan_Sweep.func1
  0.12mins  1.41% 78.61%   0.12mins  1.41%  runtime.cas
  0.11mins  1.38% 80.00%   0.40mins  4.93%  runtime.scang
  0.10mins  1.28% 81.27%   0.12mins  1.50%  runtime.atomicload
  0.10mins  1.27% 82.54%   1.16mins 14.18%  runtime.findrunnable
  0.09mins  1.06% 83.61%   0.09mins  1.06%  runtime.xadd64
  0.08mins  1.00% 84.61%   0.08mins  1.00%  runtime.osyield
  0.07mins  0.83% 85.44%   0.13mins  1.56%  runtime.readgstatus
  0.06mins  0.76% 86.20%   0.21mins  2.55%  runtime.gcmarkwb_m
  0.06mins  0.71% 86.91%   0.21mins  2.55%  runtime.heapBitsSweepSpan
  0.06mins  0.71% 87.62%   3.71mins 45.30%  runtime.mallocgc
  0.04mins  0.53% 88.15%   0.34mins  4.17%  runtime.mSpan_Sweep
  0.04mins  0.44% 88.58%   0.14mins  1.77%  runtime.runqgrab
  0.03mins  0.39% 88.97%   0.09mins  1.11%  runtime.siftdownTimer
  0.03mins  0.35% 89.32%   3.75mins 45.77%  runtime.systemstack
  0.03mins  0.32% 89.65%   0.43mins  5.25%  runtime.sweepone
  0.02mins  0.29% 89.94%   0.21mins  2.61%  runtime.writebarrierptr_nostore1
  0.02mins  0.27% 90.20%   0.15mins  1.79%  runtime.shade
  0.02mins  0.26% 90.47%   0.09mins  1.05%  runtime.scanblock
  0.02mins  0.26% 90.72%   0.17mins  2.07%  runtime.gentraceback
  0.02mins  0.25% 90.98%   0.24mins  2.92%  runtime.heapBits.setMarked
  0.02mins  0.24% 91.21%   0.05mins  0.62%  runtime.step
  0.02mins  0.22% 91.43%   0.50mins  6.11%  runtime.(*gcWork).tryGet
  0.01mins  0.17% 91.60%   0.22mins  2.72% 
 runtime.writebarrierptr_nostore1.func1
  0.01mins  0.14% 91.74%   2.17mins 26.42%  runtime.gcAssistAlloc
  0.01mins  0.13% 91.87%   0.22mins  2.73%  runtime.writebarrierptr


In the end the server is hang ,no any response  and pstack info
Thread 9 (Thread 0x7f8df3fff700 (LWP 38683)):
#0  0x0000000000463563 in runtime.futex ()
#1  0x000000000042b913 in runtime.futexsleep ()
#2  0x0000000000411314 in runtime.notesleep ()
#3  0x00000000004346d2 in runtime.stopm ()
#4  0x0000000000435128 in runtime.gcstopm ()
#5  0x0000000000435e7c in runtime.schedule ()
#6  0x000000000043641a in runtime.goschedImpl ()
#7  0x00000000004364b2 in runtime.gopreempt_m ()
#8  0x0000000000447522 in runtime.newstack ()
#9  0x000000000045fc8f in runtime.morestack ()
#10 0x000000c820031500 in ?? ()
#11 0x0000000000000000 in ?? ()
Thread 8 (Thread 0x7f8dedbfe700 (LWP 38684)):
#0  0x0000000000463563 in runtime.futex ()
#1  0x000000000042b913 in runtime.futexsleep ()
#2  0x0000000000411314 in runtime.notesleep ()
#3  0x00000000004346d2 in runtime.stopm ()
#4  0x0000000000435128 in runtime.gcstopm ()
#5  0x0000000000435e7c in runtime.schedule ()
#6  0x000000000043641a in runtime.goschedImpl ()
#7  0x00000000004364b2 in runtime.gopreempt_m ()
#8  0x0000000000447522 in runtime.newstack ()
#9  0x000000000045fc8f in runtime.morestack ()
#10 0x000000c82002aa00 in ?? ()
#11 0x0000000000000000 in ?? ()
Thread 7 (Thread 0x7f8de77fd700 (LWP 43538)):
#0  0x0000000000463563 in runtime.futex ()
#1  0x000000000042b913 in runtime.futexsleep ()
#2  0x0000000000411314 in runtime.notesleep ()
#3  0x00000000004346d2 in runtime.stopm ()
#4  0x00000000004375bc in runtime.exitsyscall0 ()
#5  0x000000000045fb3b in runtime.mcall ()
#6  0x000000c820058000 in ?? ()
#7  0x0000000000000000 in ?? ()
Thread 6 (Thread 0x7f8de13fc700 (LWP 43539)):
#0  0x0000000000463563 in runtime.futex ()
#1  0x000000000042b913 in runtime.futexsleep ()
#2  0x0000000000411314 in runtime.notesleep ()
#3  0x00000000004346d2 in runtime.stopm ()
#4  0x00000000004375bc in runtime.exitsyscall0 ()
#5  0x000000000045fb3b in runtime.mcall ()
#6  0x000000c82004c000 in ?? ()
#7  0x0000000000000000 in ?? ()
Thread 5 (Thread 0x7f8ddaffb700 (LWP 43540)):
#0  0x0000000000463563 in runtime.futex ()
#1  0x000000000042b913 in runtime.futexsleep ()
#2  0x0000000000411314 in runtime.notesleep ()
#3  0x00000000004346d2 in runtime.stopm ()
#4  0x00000000004375bc in runtime.exitsyscall0 ()
#5  0x000000000045fb3b in runtime.mcall ()
#6  0x000000c82004c000 in ?? ()
#7  0x0000000000000000 in ?? ()
Thread 4 (Thread 0x7f8dd4bfa700 (LWP 43541)):
#0  0x0000000000463563 in runtime.futex ()
#1  0x000000000042b913 in runtime.futexsleep ()
#2  0x0000000000411314 in runtime.notesleep ()
#3  0x00000000004346d2 in runtime.stopm ()
#4  0x00000000004375bc in runtime.exitsyscall0 ()
#5  0x000000000045fb3b in runtime.mcall ()
#6  0x000000c820058000 in ?? ()
#7  0x0000000000000000 in ?? ()
Thread 3 (Thread 0x7f8dce7f9700 (LWP 43542)):
#0  0x0000000000463563 in runtime.futex ()
#1  0x000000000042b913 in runtime.futexsleep ()
#2  0x0000000000411314 in runtime.notesleep ()
#3  0x00000000004346d2 in runtime.stopm ()
#4  0x0000000000435128 in runtime.gcstopm ()
#5  0x0000000000435e7c in runtime.schedule ()
#6  0x000000000043641a in runtime.goschedImpl ()
#7  0x00000000004364b2 in runtime.gopreempt_m ()
#8  0x0000000000447522 in runtime.newstack ()
#9  0x000000000045fc8f in runtime.morestack ()
#10 0x000000c820036a00 in ?? ()
#11 0x0000000000000000 in ?? ()
Thread 2 (Thread 0x7f8dc83f8700 (LWP 43543)):
#0  0x0000000000463563 in runtime.futex ()
#1  0x000000000042b913 in runtime.futexsleep ()
#2  0x0000000000411314 in runtime.notesleep ()
#3  0x00000000004346d2 in runtime.stopm ()
#4  0x00000000004375bc in runtime.exitsyscall0 ()
#5  0x000000000045fb3b in runtime.mcall ()
#6  0x000000c82004c000 in ?? ()
#7  0x0000000000000000 in ?? ()
Thread 1 (Thread 0x7f8ffa7c9700 (LWP 37229)):
#0  0x0000000000463563 in runtime.futex ()
#1  0x000000000042b913 in runtime.futexsleep ()
#2  0x0000000000411314 in runtime.notesleep ()
#3  0x00000000004346d2 in runtime.stopm ()
#4  0x0000000000435128 in runtime.gcstopm ()
#5  0x0000000000435e7c in runtime.schedule ()
#6  0x000000000043641a in runtime.goschedImpl ()
#7  0x00000000004364b2 in runtime.gopreempt_m ()
#8  0x0000000000447522 in runtime.newstack ()
#9  0x000000000045fc8f in runtime.morestack ()
#10 0x0000000000f5df20 in runtime.g0 ()
#11 0x00007ffcb932e830 in ?? ()
#12 0x0000000000f5dee0 in ?? ()
#13 0x00000000004335f2 in runtime.mstart ()
#14 0x000000000045fa28 in runtime.rt0_go ()
#15 0x0000000000000001 in ?? ()
#16 0x00007ffcb932e878 in ?? ()
#17 0x0000000000000001 in ?? ()
#18 0x00007ffcb932e878 in ?? ()
#19 0x0000000000000000 in ?? ()


在 2017年3月28日星期二 UTC+8下午2:17:14,Dave Cheney写道:
>
> Or to answer​ your question another way; the more allocations your program 
> performs, the​ higher the GC overhead to clean them up. 
>
> Are you asking: is there a way to limit the % CPU the GC is allowed to 
> use? If so, the answer is no, because: 
>
> 1. If the GC doesn't keep up with the garbage your program produces memory 
> usage grows withou bound. 
> 2. The garbage collector is designed to minimise stop the world pause 
> time, which costs more in CPU time than a traditional high latency, stop 
> the world, concurrent mark sweep collector. 

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to