Golang
使用golang采集进程的fd导致cpu飘高问题
监控业务agent使用golang实现的进程监控数据采集,部分线上ha和nginx部分机器10s周期的进程数据采集时agent cpu消耗周期性飘高。 第一个版本实现: func CalculateFd(pid string) (netFdNum uint, fileFdNum …使用文件锁防止进程被启多个
基本原理:进程启动时尝试锁住自己的二进制,启动脚本通过flock命令检查二进制是否被锁。 package main // demo.go // qudongfang@gmail.com import ( "os" "syscall" "time" log …