在一个博客上看到类似会这样的文章,感觉不错。有些内容虽然不成系统,但是对自己还是很重要的,有必要总结出来。
好了,开始第一篇:
1、epoll相对于select的优势:
不受套接字个数的限制。select默认应该是2048,而epoll没有这个限制,他的限制在系统的内存;
select每次都要创建一个列表传递给内核,而epoll则直接写到内核中。
每个套接字可以传递用户数据,这样可以方便的设置回调。
2、对UPD套接字进行connect,然后对套接字的收发会变快。但是,就不可以对它向其他的端口发消息。
3、对网卡的使用:网卡是千兆,但是不一定有这么大的利用率。因为同时还取决于网线,以及对端的交换机。
三个任何一个有瓶颈,都无法实现。可以使用工具ethtool来查看和设置网卡的工作速率。而且还要查看一下交换机的速率。华三有一款交换机,只有两个千兆端口。
4、可以使用命令sysctl对linux系统的性能进行微调。比如,网络收包缓冲区等。
5,python源码安全
1、 Python代码如果直接发布,可能会暴露源码。
2、 一个方法是利用c扩展Python,来代替核心模块。
3、 另一个折中的方法就是对源码进行编译,生成pyc或者pyo文件。这些事字节码文件。可能会被反编译。所以,可能需要研究一下Python的pyo生成和加载方式,来生成更安全的Python字节码。网上说可以修改Python源码的opcode。没有研究过。