jasper的技术小窝

关注DevOps、运维监控、Python、Golang、开源、大数据、web开发、互联网

Golang中非你所想的runtime.GOMAXPROCS(1)

作者:jasper | 分类:Golang | 标签:   | 阅读 1432 次 | 发布:2017-08-06 5:42 p.m.

在Golang中,我们可以通过runtime.GOMAXPROCS(x)来指定运行当前应用的系统线程数,而goroutine实际上也是运行在系统线程上的,那么如果我们将runtime.GOMAXPROCS(1)设为1,是不是就表示应用在单线程上运行,这样就可以不用加锁或者channel啦?答案是否定的,我们来细聊一下。

阅读全文

Golang中用race检测并发

作者:jasper | 分类:Golang | 标签:   | 阅读 1271 次 | 发布:2017-08-05 6:38 p.m.

数据竞争是并发系统中最常见和最难调试类型的错误之一。特别是在Golang中,由于goroutine的使用,这样的问题更容易出现,好在Golang提供了race这个功能。

阅读全文

Golang内存模型

作者:jasper | 分类:Golang | 标签:   | 阅读 862 次 | 发布:2017-07-31 12:05 a.m.

根据官方文档,再加上自己的理解,一起来探讨一下Golang的内存模型,简言之,Golang的内存模型描述了"如何在一个goroutine中看到在另一个goroutine修改的变量的值"。具体的,我们慢慢来看。

阅读全文

InfluxDB中文文档介绍

作者:jasper | 分类:InfluxDB | 标签:   | 阅读 720 次 | 发布:2017-07-02 10:57 p.m.

由于现在的项目中要用到InfluxDB替换掉之前的时间序列数据库(现在使用的是Elasticsearch),虽然之前对InfluxDB也是有过调研和测试,但是感觉还是不够深入,国内也鲜有这方面的教程,趁着看官方文档的机会,我就想干脆给翻译成中文算了,也算造福世人了。

阅读全文

Golang中goroutine死锁问题

作者:jasper | 分类:Golang | 标签:   | 阅读 1557 次 | 发布:2017-06-25 10:45 p.m.

还是接着上文所说,遇到golang的web程序没有响应后,就用了pprof做了监控,结果发现goroutine的数量在一直缓慢地增长,到一定数目之后程序就没有响应了。在此记录一下排查过程,以及解决方案。

阅读全文

Golang性能分析工具pprof

作者:jasper | 分类:Golang | 标签:   | 阅读 1530 次 | 发布:2017-06-24 10:40 p.m.

最近遇到一个golang写web程序的一个问题,就是在运行几天后就无响应了,最终原因这篇暂且不论,下一篇再细说;当时再没有任何思路时,就想先对其做一些监控,然后就看了一下golang的相关分析工具pprof,发现超赞的,因此做个简单的总结和记录。

阅读全文

性能调优之内存篇

作者:jasper | 分类:Linux | 标签:   | 阅读 1181 次 | 发布:2017-01-15 6:30 p.m.

这一章终于可以来讲讲内存了,最近在coding中也总是会遇到一些内存的问题,因为我们知道磁盘的处理数据比内存要低几个数量级,一旦主存填满,系统可能会在主存和这些存储设备之间交换数据,也叫作swap,这是一个缓慢的过程,常常成为系统的瓶颈,严重影响性能。所以对于内存的优化就显得尤其重要。

阅读全文

性能调优之CPU篇

作者:jasper | 分类:Linux | 标签:   | 阅读 1467 次 | 发布:2016-10-23 4:33 p.m.

CPU推动了所以软件的运行,因而通常是性能分析的首要目标,特别是现在硬件的性能越来越好,CPU的核数也是越来越多,系统通过内核调度器来调度运行的任务,当所需的CPU资源超过了所提供的时,进程里的线程就会排队,等待轮询的机会。而这样等待就给应用程序的运行带来了延时,使性能下降。所以我们希望可以在CPU上面能有所优化,让应用的性能提升。

阅读全文

性能调优之应用篇

作者:jasper | 分类:Linux | 标签:   | 阅读 1034 次 | 发布:2016-09-17 12:33 a.m.

性能的调整最好是从上层开始,也就是应用层。现在的应用程序越来越复杂,尤其是涉及到众多组件的分布式应用程序环境中。那么本篇文章就从应用程序性能的基础原理、编程语言和编译器,以及怎样做性能分析等方面来谈谈对应用层的优化。

阅读全文

性能调优之开篇

作者:jasper | 分类:Linux | 标签:   | 阅读 893 次 | 发布:2016-09-15 11:04 p.m.

对于任何一个系统而言,最重要的两个衡量的指标我认为是稳定和性能,其中对于性能则要求使用最少的资源来达到最大的优化,这种优化既包括应用程序本身,也包括操作系统层面,甚至是硬件层面,所以打算写一系列的文章来记录一下。

阅读全文

其他分类: