记一次Linux服务上遇到的性能问题

写了一个FMZ机器人协议程序,简单来讲就是用websocket把bitmex交易所数据拉回本地,再开启一个http服务给同一主机上的另外一个程序接数据。一开始用到的是EventMachine,参考蛋人网教程弄的一个简单的后台server做脚手架。接下来这个程序也搭出来了,但因为一开始做业务流程不熟悉,还对接过多的交易所,导致程序逻辑写得很乱,性能遇到瓶颈,拿数据经常断开!

再版的时候,想到了nginx、想到了用rails来搭,跑越来之后,8个小时左右nginx就因为内存不足被killed。这个问题现在都还未解决。可能因为高并发,机器内存本身也小所致。最后还是用回了EventMachine。先在张上拿笔一步步写好流程之后再开始写代码,发现原来之前是乱写一通,写了很多废代码,还把整个流程弄乱了!

这次折腾(3天左右 ),还是有收获的:

  1. 写代码前先把流程弄清楚了再动手。先画流程图
  2. 学习到了简单的如何检查ruby的内存泄露检测
  3. 前3天的折腾,到了最后发现官方文档里其实有更好的解决方法,只是我一直视而不见!拍大腿!