嵌入式linux的epoll的坑

昨天搞到一个魔豆路由器,由于这个路由器开放权限,所以手就很痒的玩了起来。

把我以前写的epoll服务器编译后上传上去,发现在接收到数据的时候程序总没反应,经过调试,发现epoll的epoll_event传的data在epoll_wait时拿到总是空,所以初步断定是内核的问题,查看内核是linux matrix 2.6.36,这个版本epoll才加入没多久,有问题应该也是可能的。

下了结论,然后再想想其实这种嵌入式设备也没必要处理大并发,所以就用select去实现了服务器,意料之中的,效果非常棒,ab测试下的benchmark在64并发10000请求条件下,比路由器上的nginx要高很多(肯定的,因为还没做http请求解析)。接下来要优化一下服务器,再把http的解析加上去。

另外,魔豆路由器的系统目录默认是只读的,要设置自己的程序开机自动执行,需要执行writesys.sh才能进行配置,配置完成后再使用writesys.sh close 把目录改回只读。

Leave a comment

Your email address will not be published. Required fields are marked *