golang 常用的两个设置

golang相关
golang的环境变量配置会影响服务性能

GOGC

是一个百分比值,表示内存占用达到上次gc时的多少比例,才进行一次GC,默认值100,即内存使用翻倍时会触发gc。golang的gc需要执行stw阶段,期间会阻塞所有的工作线程。如果服务存在频繁大量的内存申请操作,则可能触发GC的频率会比较高。这块可以通过pprof查看,如果gc开头的函数占比较高,则表示cpu花了很多时间处理gc,这时可以适当调高GOGC的值,减少gc的次数以达到性能的提升。另外需要注意,不要调的过大导致OOM。

GOMAXPROCS

go应用程序会启动的工作线程数量,默认与CPU核数相等,根据一般经验,工作线程数量设置为CPU核数二倍会得到一个较好的性能。

发表新评论