记一次golang程序CPU高的排查过程

前言 事情的起因是某天CTO突然和我说,生产环境的程序CPU有点高,关键是现在也没什么负载,同样的代码在开发环境上CPU就低的多了。 不用细说,那一定是有什么地方出问题了。 CTO还说,他pprof过了,占用CPU最高的runtime.futex,还发了一篇相关的文章谁占了该CPU核的30% - 一个较意外的Go性能问题 ,打趣说没准系统负载高了,这个问题就没了。因为原文中写到: 必须指出,本问题是因为系统空闲没有goroutine可以调度造成的。显然的,系统繁忙的时候,即CPU资源真正体现价值...阅读全文

2019年08月12日 raining1127
阅读:6222 评论:0

Go 最小硬件编程(第一部分)

我们能够让 Go 在多低的配置下运行并做一些实用的事情呢? 最近我购买了这个特别便宜的开发板: [![STM32F030F4P6](https://ziutek.github.io/images/mcu/f030-demo-board/board.jpg)](https://ziutek.github.io/2018/03/30/go_on_very_small_hardware.html) 购买它,我基于以下三个理由:第一,我(作为一个程序员)从未搞过 STM32F0 系列的...阅读全文

2019-08-13 23:20:11 PotoYang
阅读:4334 评论:4

基于websocket单台机器支持百万连接分布式聊天(IM)系统

本文将介绍如何实现一个基于websocket分布式聊天(IM)系统。 使用golang实现websocket通讯,单机可以支持百万连接,使用gin框架、nginx负载、可以水平部署、程序内部相互通讯、使用grpc通讯协议。 本文内容比较长,如果直接想clone项目体验直接进入[项目体验](https://github.com/link1st/gowebsocket) [goWebSocket项目下载](https://github.com/link1st/gowebsocket)...阅读全文

阅读:4862 评论:0