
server开发
文章平均质量分 77
chenziwen
这个作者很懒,什么都没留下…
展开
-
分布式缓存系统Memcached学习心得
缘起: 在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载。缓存是解决这个问题的好办法。 Memcached是什么? Memcached是由Danga Interactive开发的,高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。 Memcached能缓存什么? 通过在内存里维护一个统一的巨大的hash表,M转载 2009-04-08 16:32:00 · 449 阅读 · 0 评论 -
什么是真正的实时操作系统
做嵌入式系统开发有一段时间了,做过用于手机平台的嵌入式Linux,也接触过用于交换机、媒体网关平台的VxWorks,实际应用后回过头来看理论,才发现自己理解的肤浅,也发现优快云上好多同学们都对实时、嵌入式这些概念似懂非懂,毕竟如果不做类似的产品,平时接触的机会很少,即使做嵌入式产品开发,基本也是只管调用Platformteam封装好的API。所以在此总结一下这些概念,加深自己的理解,同时也给新手转载 2012-06-08 10:18:03 · 429 阅读 · 0 评论 -
[转]Linux线程同步之条件变量
与互斥锁不同,条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。条件的检测是在互斥锁的保护下进行的。如果一个条件为假,一个转载 2012-04-11 19:07:37 · 292 阅读 · 0 评论 -
关于链接的诡异问题解决
<br />今天gdb定位一个问题,原本以为是子类父类的动态绑定问题,即指向子对象的父类引用,调用子对象里的一个成员函数,可是指向了一个很异常的父类函数,两个函数连名字都不一样。定位了半天,原来是链接的时候,下面的两个库中,都包含了httpframe的库,而且名字空间都一模一样,这种问题很难定位(可能使用的别人的库,那个库里也有一个东西叫那个名字,并且排在你的前面),增长了一次经验!<br />教训:<br />1.需要命名空间<br />2.命名有个性。原创 2011-04-20 20:33:00 · 287 阅读 · 0 评论 -
linux 2.6进程与线程
<br />1 > 线程和进程的差别<br />线程机制支持并发程序设计技术,在多处理器上能真正保证并行处理。而在linux实现线程很特别,linux把所有的线程都当作线程实现。<br />linux下线程看起来就像普通进程(只是该进程和其他进程共享资源,如地址空间)。上述机制与Microsoft windows或是Sun Solaris实现<br />差异很大。这些系统提供专门支持线程机制(轻量级进程)。<br />在现代操作系统中,进程支持多线程。进程是资源管理及分配的最小单元转载 2010-12-22 10:51:00 · 420 阅读 · 0 评论 -
Linux 内存管理 -- 高端内存的映射方式
高端内存是指物理地址大于 896M 的内存。对于这样的内存,无法在“内核直接映射空间”进行映射。为什么?因为“内核直接映射空间”最多只能从 3G 到 4G,只能直接映射 1G 物理内存,对于大于 1G 的物理内存,无能为力。实际上,“内核直接映射空间”也达不到 1G, 还得留点线性空间给“内核动态映射空间” 呢。因此,Linux 规定“内核直接映射空间” 最多映射 896M 物理内存。对 于高端内存,可以通过 alloc_page() 或者其它函数获得对应的 page,但是要想访问实际物理内存,还得把 pa转载 2010-10-11 00:27:00 · 1921 阅读 · 1 评论 -
何时需要PIC
<br /><br />何时需要PIC<br />作者:王姗姗,华清远见嵌入式学院讲师。<br />“PCI”其实是我们在编译动态库的命令行参数,我们用这个参数标记,告诉GCC产生的代码不要包含对函数和变量具体内存位置的引用,这是因为现在还无法知道使用该消息代码的应用程序会将它连接到哪一段内存地址空间。这样编译出的*.o可以被用于建立共享链接库。建立共享链接库只需要用GCC的“-shared”标记即可。<br />现实生活中不是每个程序代码都是从零开始,常常会复用别人写好的,成熟的代码,而这些代码就被封装成转载 2010-08-31 11:08:00 · 324 阅读 · 0 评论 -
UNIX网络编程中RST分节总结
UNIX网络编程中RST分节总结 RST的含义为“复位”,它是TCP在某些错误情况下所发出的一种TCP分节。有三个条件可以产生RST: 1), SYN到达某端口但此端口上没有正在监听的服务器。 2), TCP想取消一个已有连接 3), TCP接收了一个根本不存在的连接上的分节。 1. Connect 函数返回错误ECONNREFUS转载 2010-01-12 00:28:00 · 514 阅读 · 0 评论 -
signal函数的使用(比较实用的)
signal系统函数调用提供了一种最简单的范例。然而,由于C原形声明的缘故使它看起来比实际复杂。signal函数将一个给定的函数和一个特定的信号联系。这里是FreeBSD中的定义(和一个typedef一起): 引用: typedef void (*sig_t) (int); sig_t signal(int sig, sig_t func); 第一个参数是目标信号。func参数是一个指针,转载 2010-02-28 01:32:00 · 409 阅读 · 0 评论 -
【转】关于回车与换行
最近在看以前在Windows下VC写的代码,发现每行代码后都有一个“^M”符号,而且代码中的中文注释也都是乱码的了。google了一下,总算把这两个事弄明白了。关于回车与换行很久以前,老式的电传打字机使用两个字符来另起新行。一个字符把滑动架移回首位 (称为回车,,ASCII码为0D),另一个字符把纸上移一行 (称为换行, ,ASCII码为0A)。当计算机问世以后,存储器曾经非常昂贵。有原创 2009-09-22 22:26:00 · 364 阅读 · 0 评论 -
【转载】配置开发支持高并发TCP连接的Linux应用程序全攻略
原文见:http://www.cppblog.com/flashboy/articles/47012.html1、修改用户进程可打开文件数限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量 的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使原创 2009-09-22 21:39:00 · 362 阅读 · 0 评论 -
可重入与异步信号安全
对于可重入、线程安全、异步信号安全几个概念的理解可重入与异步信号安全一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误。《多线程编程指南》中定义,可以被信号控制器安全调用的函数被称为"异步信号安全"函数。因此,我认为可重入与异步信号安全是一个概原创 2009-05-03 23:08:00 · 380 阅读 · 0 评论 -
关于读源码的动机
这几天在看memcached的源代码,很有名的一个server,呵呵。不知道怎么着就开始想看看她了,本来还在看APUE和UNP,不过大家都说要想成为大牛就要通读一堆优秀产品的源代码,认真想想也是,通过阅读著名产品的源代码,肯定比你单单看书学的东西多,或者说看书上的知识只是一个基础,但是怎么运用这些基础还是从那些著名的产品源代码里面学习。比如之前看过了信号、多线程、进程间通信的知识,但是怎么应用还是原创 2009-05-03 13:02:00 · 276 阅读 · 0 评论 -
SecureCRT使用备忘
转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]本文链接: http://www.php-oa.com/2009/04/28/securecrt.html 在windows下的SecureCRT非常好用,但是也有些不如意,比如字体不如Ubuntu中的bitstream vera sans mono roman漂亮.还有UTF8之类和彩色终端一定要设转载 2009-04-30 13:42:00 · 315 阅读 · 0 评论 -
memcached线程模型分析
目前网上关于memcached的分析主要是内存管理部分,下面对memcached的线程模型做下简单分析 有不对的地方还请大家指正,对memcahced和libevent不熟悉的请先google之 先看下memcahced启动时线程处理的流程 <v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:p转载 2009-05-03 21:22:00 · 736 阅读 · 0 评论 -
YouTube 的架构扩展
YouTube 的架构扩展作者: Fenng | 可以转载, 转载时务必以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.dbanotes.net/opensource/youtube_web_arch.html在西雅图扩展性的技术研讨会上,YouTube 的 Cuong Do 做了关于 YouTube Scalability 的报告。视频内容在 G转载 2009-04-08 16:58:00 · 262 阅读 · 0 评论 -
PHP & memcached
转自 http://blog.youkuaiyun.com/guoguo1980/archive/2006/08/13/1059065.aspxmemcached 这个名字,但很多同学只是听过,并没有用过或实际了解过,只知道它是一个很不错的东东。这里简单介绍一下,memcached 是高效、快速的分布式内存对象缓存系统,主要用于加速 WEB 动态应用程序。一、memcached 简介转载 2009-04-08 16:48:00 · 242 阅读 · 0 评论 -
Linux UDP严重丢包问题的解决
测试系统在Linux上的性能发现丢包率极为严重,发210000条数据,丢包达110000之巨,丢包率超过50%。同等情形下Windows上测试,仅丢几条数据。形势严峻,必须解决。考虑可能是因为协议栈Buffer太低所致,于是先看看默认情况: sysctl -a |grep net.core 发现 net.core.rmem_max = 131071net.core.rm转载 2012-06-08 11:20:12 · 824 阅读 · 0 评论