日期:2014-05-16  浏览次数:20549 次

Linux 服务器后台系统架构的高性能设计

因为,目前在做游戏的的后台开发。尽管最近在忙于开发游戏业务逻辑的的相关代码,也在不停思考着游戏后台的一些架构问题。


因为游戏后台处理着大部分的业务逻辑,因此。在性能上是必须的。


那么如何尽最大的提高性能呢,下面根据我们后台架构提出的几点,因为我们后台架构业务逻辑是单进程将单线程处理


首先,我们知道目前后台所效率上受到限制的就是 数据库IO>磁盘》网络IO>cpu>内存


从以上,我们可以看到,我们优化的空间很大。


1,如何降低数据库IO给我们带来的瓶颈呢,我们首先想到的就是操作数据库的异步IO.当我们要写数据库的时候,程序先发送到数据库进程,立即返回。去处理下一个请求,

当我们业务进程监听到了数据库进程的时候,在处理其返回结果。这就很有效的做了一个异步操作。

2。磁盘IO。我们什么时候会涉及到呢,那就是在写一些日志文件或者写到文件的数据,其思想,我们还是用到了异步操作,或者叫做BUFF.先把数据写到buf下,让一个单独的进程不停的对其刷出到文件中。


3.网络IO,这个应该说是不可避免的一个io,尤其是在做后台网络架构的时候,因此,我们封装了一个高效的模块,在不同物理机,上进行通信,今本受限于网卡的通信,因此,我们的该模块已经尽可能的提高效率了


4.进程间通信。因此,我们尽可能的在内存操作,在进程通信模块,我们使用了共享内存的模式。因为负责网络io这块有个网络接入层,网络接入层进程和我们的业务逻辑进程是共享内存的通信,如果在一台物理机上。


5.为了提高我们业务员逻辑效率,

注意几点,全部使用指针,减少内存的拷贝。逻辑中减少使用大循环,和杜绝双重循环。

使用高效的二分查找,二分删除等。数据存储使用hash内存。

使用内存池对内存的管理。


今天就写到这里。有时间好好分析我们开发的架构。

晚安


更多文章,欢迎访问:

http://blog.csdn.net/wallwind

转载请注明出处