You might have a ticker leak.
Check that you're not accidentally calling time.NewTicker in a loop.
Get a pprof heap dump and look for time.NewTicker objects. The total size 
of them should not be large. If it is, then you have a ticker leak.

On Tuesday, 13 November 2018 at 15:26:29 UTC+1 Anon wrote:

> Hi Ian,
>
> I am facing the same issue. The CPU usage on my servers increases from 
> very low to 100% of CPU. Did you find the solution to your problem?
>
> go version : 1.10.1
> OS : centOS
>
> Thanks,
>
>
> On Thursday, January 31, 2013 at 7:27:33 AM UTC+5:30, Ian Ragsdale wrote:
>>
>> Thanks Dave, those look like great suggestions.  I'm running Go 1.0.3 on 
>> Ubuntu:
>>
>> # go version                                                             
>>                                                                             
>>                                                                             
>>                                                            go version 
>> go1.0.3
>>
>> # uname -a
>> Linux 4bf343d4-786f-4fa6-b37c-8bdd018fc63b 2.6.32-350-ec2 #57-Ubuntu SMP 
>> Thu Nov 15 15:59:03 UTC 2012 x86_64 GNU/Linux
>>
>> I'll work on gathering the SIGQUIT & GOGCTRACE output - didn't know about 
>> those techniques.  I can't really share the source, and I'm not sure if 
>> there's a good way to cut it down to a sharable chunk, but I'll give it a 
>> shot.  Strace was going to be my next move.
>>
>> I think your theory in general makes sense, as I'm familiar with that 
>> kind of failure, but if that was the case, would it not immediately shoot 
>> up to 100% cpu usage as soon as the problem occurred?  In this situation, 
>> the cpu usage creeps up quite slowly, in a nearly perfect linear fashion 
>> over the course of many hours.
>>
>> - Ian
>>
>> On Jan 30, 2013, at 4:00 PM, Dave Cheney <da...@cheney.net> wrote:
>>
>>
>> Can you please provide the following details
>>
>> * your Go version and operating system details
>> * the full output from the process when sent a SIGQUIT, once it entered 
>> the high CPU usage scenario. 
>> * the full output from running the process with GOGCTRACE=1 as above. 
>> * the source, I possible, or at least a sample that reproduces the issue. 
>> * if you are using Linux, try running the process under the perf(1) tool. 
>> * if you able, try running the process under strace(1). 
>>
>> My gut feeling is your code, or a library is not checking an error code 
>> from a socket operation and entering into a tight loop. If this is the case 
>> temporarily breaking the networking on this host may induce the failure. 
>>
>>
>>
>>
> ::DISCLAIMER::
>
>
> ----------------------------------------------------------------------------------------------------------------------------------------------------
>
>
> This message is intended only for the use of the addressee and may contain 
> information that is privileged, confidential and exempt from disclosure 
> under applicable law. If the reader of this message is not the intended 
> recipient, or the employee or agent responsible for delivering the message 
> to the intended recipient, you are hereby notified that any dissemination, 
> distribution or copying of this communication is strictly prohibited. If 
> you have received this e-mail in error, please notify us immediately by 
> return e-mail and delete this e-mail and all attachments from your system.
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/f517f60a-50cd-4a87-b552-ec02e991fd53n%40googlegroups.com.

Reply via email to