分类目录:技术

mysql常见的运维及监控

前言 前几天项目的mysql突然挂掉了,所有玩家登陆不进,大家急的团团转。我由此吸取教训,项目上线之后对服务器做相关运维监控显得非常重要。优秀的程序员不但能写出优雅风骚的代码,对线上问题能快速排查定位解决的话也是其能力和价值的体现。下面来谈…

go中的接收器类型与结构体嵌套

go中的指针接收器与值接收器 在go语言中,方法的接收器类型有值和指针两种类型,值接收器跟指针接收器之间的区别在于,在指针接收器的方法内部的改变对于调用者是可见的,然而值接收器的情况不是这样的。通过一段代码来理解这点: [crayon-5d…

使用gdb调试go程序

开发程序过程中调试代码是开发者经常要做的一件事情,Go语言不像PHP、Python等动态语言,只要修改不需要编译就可以直接输出,而且可以动态的在运行环境下打印数据。当然Go语言也可以通过Println之类的打印数据来调试,但是每次都需要重新…

beego源码分析之orm操作

任何一门服务端语言最终都离不开解决数据的存储问题,所以web框架的核心功能之一是封装db操作库(orm)。beego作为一款流行的go语言web开发框架,其orm操作的封装也值得学习,下面先来看看beego中orm使用。 [crayon-5…

cpu飙升与open_basedir

前言 近日,运维的同学说php-fpm消耗的cpu一下子飚了很多。开始我的思路是通过gdb方式去查看当时内存里的调用栈来找出有问题的代码行,经过分析业务代码并没啥问题,这时候很可能就跟open_basedir开启有关。 open_based…

通过gdb找出cpu飙升的代码行

前言 某日,运维的同学告诉你,php-fpm进程的cpu飚的有点高,是不是哪里的业务出问题了。这时候怎么办?有几个思路: 1)看日志。查看mysql慢查询日志或者在业务接口写日志记录代码运行时间。 2)借助xhprof。xhprof 是fa…

一款高扩展php框架

框架是什么? 现在只要网上一搜,都能搜到各种各样的开发框架。对于初学者来说,框架似乎高深莫测。它是怎么产生的呢?如果有一定开发经验的朋友会有这样的感受,每次做完一个项目,再开展另一个项目的时候,会发现有很多工作是类似的。于是聪明的程序员开始…