- 博客(10)
- 收藏
- 关注
原创 线程池代替进程池
一.问题引入刚进入一家新公司,在公司的一些培训中得知,我们的服务端系统中,底层库的任务调度用的是进程池的实现,也就是创建许多子进程来进行执行业务处理,进程池技术是比较早的一种技术了,在现在众多高性能服务端程序中,包括开源著名的apache,nginx…,大多采用线程池来实现,下面说一下采用线程的一些好处。 二.线程的优点线程(thread)技术早在60年代就被提出,但真正应用多线程
2015-03-27 11:08:19 1363
转载 高并发服务器架构
设计一个稳定,高效的服务器,需要考虑很多的方面,不管是系统方面的,还是代码方面的。那么究竟有哪些? 一: 导致服务器低效的四个罪魁祸首:数据拷贝,(用户态/内核态切换)上下文切换,内存管理,锁竞争; 数据拷贝: ---首先提下零拷贝。零拷贝( zero-copy ),某种程度上来说可以有效的改善数据传输的性能,在内核驱动程序(比如网络堆栈或者磁盘存储
2015-03-27 10:46:42 1395
转载 提高Linux上socket 性能
加速网络应用程序的 4 种方法使用 Sockets API,我们可以开发客户机和服务器应用程序,它们可以在本地网络上进行通信,也可以通过 Internet 在全球范围内进行通信。与其他 API 一样,您可以通过一些方法使用 Sockets API,从而提高 Socket 的性能,或者限制 Socket 的性能。本文探索了 4 种使用 Sockets API 来获取应用程序的最大性能并对
2015-03-27 10:41:54 592
转载 高并发Web服务的演变——节约系统内存和CPU
一、越来越多的并发连接数现在的Web系统面对的并发连接数在近几年呈现指数增长,高并发成为了一种常态,给Web系统带来不小的挑战。以最简单粗暴的方式解决,就是增加Web系统的机器和升级硬件配置。虽然现在的硬件越来越便宜,但是一味地通过增加机器来解决并发量的增长,成本是非常高昂的。结合技术优化方案,才是更有效的解决方法。并发连接数为什么呈指数增长?实际上,从这几年的用户基数上看,这个数量并没有
2015-03-24 09:24:39 537
转载 TCP协议疑难杂症全景解析
说明:1).本文以TCP的发展历程解析容易引起混淆,误会的方方面面2).本文不会贴大量的源码,大多数是以文字形式描述,我相信文字看起来是要比代码更轻松的3).针对对象:对TCP已经有了全面了解的人。因为本文不会解析TCP头里面的每一个字段或者3次握手的细节,也不会解释慢启动和快速重传的定义4).除了《TCP/IP详解》(卷一,卷二)以及《Unix网络编程》以及Linux源代码之外,
2015-03-20 09:48:05 664
转载 夏俊:深入网站服务端技术(一)——网站并发的问题
一、 引子《关于大型网站技术演进的思考》已经连载完了两个系列,它们分别是《存储的瓶颈》和《网站静态化的处理》,这两个系列对应到网站里的组件就是存储端和浏览器端,网站除了这两端外,还有一端那就是服务端了,服务端上接浏览器端,下承存储端,所以当我们想让网站的浏览器端或存储端性能更加优秀的时候,就不得不去考虑服务端的问题,因为服务端和它们永远都是剪不断理还乱的关联性。现在我要开启《关于大型网
2015-03-17 10:57:14 632
转载 多线程和多进程的区别(小结)
很想写点关于多进程和多线程的东西,我确实很爱他们。但是每每想动手写点关于他们的东西,却总是求全心理作祟,始终动不了手。今天终于下了决心,写点东西,以后可以再修修补补也无妨。 一.为何需要多进程(或者多线程),为何需要并发?这个问题或许本身都不是个问题。但是对于没有接触过多进程编程的朋友来说,他们确实无法感受到并发的魅力以及必要性。我想,只要你不是整天都写那种int main()
2015-03-11 10:54:54 390
转载 为什么我们使用Nginx而不是Apache?
Apache是非常强大的Web服务器,模块化结构,也是Web服务端的鼻祖。世界上大多数网站仍运行着Apache系统。但是,Apache并不是完美的,并且不再适合大规模系统。为什么?因为他的进程模式虽然简单而灵活,但并不适合大规模尤其是当要处理像PHP这种需要占用大量内存应用程序代码时。我们大多数的客户在他们的服务器上使用Apache作为Web服务器,尤其是部署在一个基于PHP系统的前端
2015-03-10 10:54:13 374
转载 select, iocp, epoll,kqueue及各种I/O复用机制
首先,介绍几种常见的I/O模型及其区别,如下:blocking I/Ononblocking I/OI/O multiplexing (select and poll)signal driven I/O (SIGIO)asynchronous I/O (the POSIX aio_functions)blocking I/O 这个不用多解
2015-03-10 10:25:35 486
转载 Apache ab 压力测试及分析
压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分。压力测试的基本思路很简单:不是在常规条件下运行手动或自动测试,而是在计 算机数量较少或系统资源匮乏的条件下运行测试。通常要进行压力测试的资源包括内部内存、CPU 可用性、磁盘空间和网络带宽等。一般用并发来做压力测试。1.apache安装下载:从Apache官方网站http://httpd.apache.org/down
2015-03-03 13:50:14 589
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人