![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
服务器开发
文章平均质量分 84
AdolphLua
这个作者很懒,什么都没留下…
展开
-
linux 性能优化
性能优化的核心是找出系统的瓶颈点,问题找到了,优化的工作也就完成了大半;这里介绍的性能优化主要从两个层面来介绍:系统层面和程序层面;分析系统瓶颈系统响应变慢,首先得定位大致的问题出在哪里,是IO瓶颈、CPU瓶颈、内存瓶颈还是程序导致的系统问题;使用top工具能够比较全面的查看我们关注的点:$top top - 09:14:56 up 264 days, 20:5转载 2016-05-10 17:54:16 · 553 阅读 · 0 评论 -
ZMQ指南
ZMQ 指南原文github连接 作者: Pieter Hintjens ph@imatix.com, CEO iMatix Corporation. 翻译: 张吉 jizhang@anjuke.com, 安居客集团 好租网工程师With thanks to Bill Desmarais, Brian Dorsey, CAF, Daniel Lin, Eric Desgranges, Gonza转载 2016-08-03 22:22:06 · 12106 阅读 · 0 评论 -
Memcached源码分析之资源分享
这次的Memcached源码分享总共写了20篇文章,主要是记录自己看源码的一个过程,因为我们大脑不靠谱。在看源码过程中,已有的一些文章帮助很大,在学习了很多人的文章之后,自己分析源码,过程才没那么痛苦,下面就把我认为好的文章分享出来,这些文章涵盖了Memcached的各个方面,大家在学习Memcached的过程中可以参考。Facebook对memcached的提升Memcached源码分析之内转载 2016-07-09 21:50:42 · 462 阅读 · 0 评论 -
Lighttpd源码分析之状态机与插件
Lighttpd启动时完成了一系列初始化操作后,就进入了一个包含11个状态的有限状态机中。每个连接都是一个connection实例(con),状态的切换取决于con->state。lighttpd经过初步处理后将con的基本信息初始化,而插件对事件的处理就是针对con进行的,它拿到con后按照业务需要进行相应处理,然后再交还给lighttpd,lighttpd根据con中的信息完成响应。转载 2016-07-02 12:23:08 · 1566 阅读 · 0 评论 -
服务器TIME_WAIT和CLOSE_WAIT详解
昨天解决了一个HttpClient调用错误导致的服务器异常,具体过程如下:http://blog.csdn.net/shootyou/article/details/6615051里头的分析过程有提到,通过查看服务器网络状态检测到服务器有大量的CLOSE_WAIT的状态。 在服务器的日常维护过程中,会经常用到下面的命令:netstat -n | aw转载 2016-05-07 15:36:34 · 222 阅读 · 0 评论 -
MMORPG服务器架构
MMORPG服务器架构一.摘要1.网络游戏MMORPG整体服务器框架,包括早期,中期,当前的一些主流架构2.网络游戏网络层,包括网络协议,IO模型,网络框架,消息编码等。3.网络游戏的场景管理,AI,脚本的应用等。4.开源的网络服务器引擎5.参考书籍,博客二.关键词网络协议 网络IO 消息 广播 同步 CS TCP/UDP IP 集群 负载均衡 分布转载 2016-04-22 12:40:50 · 387 阅读 · 0 评论 -
linux c/c++ 后台开发常用组件之:c++日志模块
版权声明:本文为博主原创文章,未经博主允许不得转载。日志是服务端开发必不可少的模块,工作过几个公司,基本每个公司或者项目组都有自己的日志模块,有使用开源的,也有自己写的,这是自己写的一个日志模块,经过线上大并发的测试,性能良好,使用也较方便。该日志采用的是单例模式,支持自动按天分文件,按日志行数自动分文件,是多线程安全的单例模式,没有外部依赖,linux操作系统均可以使用。在日志安全级别高转载 2016-05-06 20:46:44 · 676 阅读 · 0 评论 -
高性能阻塞队列
版权声明:本文为博主原创文章,未经博主允许不得转载。阻塞队列是后台开发中多线程异步架构的基本数据结构,像Python,Java 都提供线程安全的阻塞队列,c++ 可能需要自己实现一个模板。从性能考虑,自己没有使用STL的queue作为基本数据结构,而是使用循环数组作为基本数据结构,性能应该比queue高,省去了动态内存分配和回收。确点就是,队列大小不可动态扩展,当时实际开发转载 2016-05-06 20:27:41 · 484 阅读 · 0 评论 -
linux 下的编程效率分享
操作性能memset 1K150W次/smemcpy 1K150W次/smalloc 小字节 单线程100W次/sgettimeofday30W~400W次/stime30W~400W次/sgetpid转载 2016-05-06 19:29:21 · 209 阅读 · 0 评论 -
服务器程序中如何设计backup task功能
retry集群中有client、server1, server2三台机器,client需要向server请求数据,如果server1响应超时,则请求server2。server1、server2互为备份,包含同样的数据。client:[cpp] view plain copy for (id = 0; id { if (TIMEOUT == do转载 2016-05-06 00:20:48 · 497 阅读 · 0 评论 -
多线程服务器的适用场合
与前文相同,本文的“进程”指的是 fork() 系统调用的产物。“线程”指的是 pthread_create() 的产物,而且我指的 pthreads 是 NPTL 的,每个线程由 clone() 产生,对应一个内核的 task_struct。本文所用的开发语言是 C++,运行环境为 Linux。首先,一个由多台机器组成的分布式系统必然是多进程的(字面意义上),因为进程不能跨 OS 边界。在这转载 2016-05-11 01:11:05 · 227 阅读 · 0 评论 -
ZeroMQ进阶
第二章 ZeroMQ进阶原文github链接第一章我们简单试用了ZMQ的若干通信模式:请求-应答模式、发布-订阅模式、管道模式。这一章我们将学习更多在实际开发中会使用到的东西:本章涉及的内容有:创建和使用ZMQ套接字使用套接字发送和接收消息使用ZMQ提供的异步I/O套接字构建你的应用程序在单一线程中使用多个套接字恰当地处理致命和非致命错误处理诸如Ctrl-C的中断信号正确地关闭ZMQ应转载 2016-08-03 22:24:09 · 1900 阅读 · 0 评论