摘要: 上线新功能导致服务器cpu暴涨。经分析为map assign过于频繁,导致频繁的内存malloc与memorymove,耗尽cpu。 使用go tool定位过程记录 1. 获取进程内函数执行统计 go tool pprof http://10.139.252.109:9360/debug/pprof 阅读全文
posted @ 2016-10-11 16:36 黑暗遊侠 阅读(1513) 评论(0) 推荐(0) 编辑
摘要: tcp的关闭可以分为两大类场景 一、socket主动close,或在socket没有close的情况下进程exit退出,或kill -9强制关掉进程( kill掉进程时,内核会清理掉文件描述符(包括socket描述符 )) 这3种场景都可以看做同一种情况。具体又可以分为两种情况 二、断网,或断电 这 阅读全文
posted @ 2016-09-07 20:30 黑暗遊侠 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 场景 考虑一个场景,tcp发动端连续发送了4个包1-200,201-300,301-400,401-500. 接收端接收了1-200, 201-300,401-500。由于301-400没有收到,所以接收端只能发送一个ack 301给发送端,以确认1-300都收到,而401-500无法给发送端确认。 阅读全文
posted @ 2016-09-07 13:27 黑暗遊侠 阅读(1815) 评论(0) 推荐(0) 编辑
摘要: 一般来说timeout并不会对服务器造成什么大的影响,但如果timeout过多导致进程文件描述符不够用或服务器端口不够用就需要注意了。 下面是一些常规的timeout解决办法。注意:不是长久之计 /etc/sysctl.conf net.ipv4.tcp_tw_reuse = 1表示开启重用。允许将 阅读全文
posted @ 2016-08-24 15:07 黑暗遊侠 阅读(1920) 评论(0) 推荐(0) 编辑
摘要: http keep-alive与tcp keep-alive,不是同一回事,意图不一样。http keep-alive是为了让tcp活得更久一点,以便在同一个连接上传送多个http,提高socket的效率。而tcp keep-alive是TCP的一种检测TCP连接状况的保鲜机制。tcp keep-a 阅读全文
posted @ 2016-08-24 15:04 黑暗遊侠 阅读(3435) 评论(0) 推荐(0) 编辑
摘要: 丝绸之路与中东 阅读全文
posted @ 2016-08-24 14:35 黑暗遊侠 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 在如下几种情况会产生连接复位 1. 在另一端已经关闭连接的情况下,本端还往这个连接上(fd)读写数据 2. 一端奔溃并重新启动,另一端过来的请求会收到连接复位 阅读全文
posted @ 2014-06-25 11:11 黑暗遊侠 阅读(397) 评论(0) 推荐(0) 编辑
摘要: 进程调度优先级中PR 和NI的含义,用TOP可以看到 PR 进程的优先级。在Linux 2.6.23之前的版本中PR是一个动态值,在运行的过程中可能出现变化。大体策略是:如果一个进程sleep了比较多的时间,PR值会降低(即优先级提高);如果一个进程占用了大量的CPU时间,PR值会升高(即优先级降低 阅读全文
posted @ 2014-01-20 18:56 黑暗遊侠 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 一些小的点,防止忘了再查资料 1.类的所有对象共享虚函数表。只不过每个对象保存一份虚函数表地址的指针 2.非虚函数在编译期就静态绑定了。 阅读全文
posted @ 2014-01-14 15:29 黑暗遊侠 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 创建一个动态库时报错,如下 relocation R_X86_64_32 against `vtable for Base' can not be used when making a shared object; recompile with -fPIC ../sdk/lib/libbase.a: 阅读全文
posted @ 2014-01-03 14:06 黑暗遊侠 阅读(285) 评论(0) 推荐(0) 编辑