Ops
使用golang采集进程的fd导致cpu飘高问题
监控业务agent使用golang实现的进程监控数据采集,部分线上ha和nginx部分机器10s周期的进程数据采集时agent cpu消耗周期性飘高。 第一个版本实现: func CalculateFd(pid string) (netFdNum uint, fileFdNum …容器内外统一的taskset命令
监控业务agent部署时,为避免影响业务方计算资源,一般会对agent做cpu taskset限制。 现在遇到的问题是,agent的启动环境复杂,对于tasket来说物理机和虚拟机都很简单。然而容器就不同了, 许多种container解决方案下,容器内的进程看到的cpu都是其宿主 …使用文件锁防止进程被启多个
基本原理:进程启动时尝试锁住自己的二进制,启动脚本通过flock命令检查二进制是否被锁。 package main // demo.go // qudongfang@gmail.com import ( "os" "syscall" "time" log …使用简单shell实现服务进程的守护
有这样一种需求:假如服务(模块)进程异常退出了,自动重启它。 社区有许多成熟的方案,常用的有以下几个: daemontools 老牌supervise,c/c++社区 monit ruby社区用的多,附带比较多监控功能 commons-daemon java社区常用 akuma …