本文主要讲述高并发http应用中的c10k瓶颈问题:在很多服务器初始状态下,无法服务1w左右的并发连接。这与每次服务的资源消耗、服务器的硬件配置固然有关,但很多时候是被linux的默认配置以及软件stack选型所限制。本文主要分析c10k问题的产生原因、限制因素以及解决方案。

如果硬件配置没有问题,性能较高的服务器上,产生c10k问题,很多情况下与配置和软件栈相关:最大文件打开数、socket 端口数、IO基础栈。

为什么呢?

如果依然存在性能问题,可以考虑优化程序的架构:比如,网络瓶颈:cdn ,客户端缓存,服务器端改成api + angular,这样可以缓存页面。多个服务器 + session-redis + memcached-mysql

如果依然存在性能问题,需要考虑优化Linux服务器的性能,参见另外一篇博客: Linux服务器性能调优方案。

如果是怀疑mysql的问题,参见另外一篇博客: mysql性能调优方案。

参考:

1. http://blog.sae.sina.com.cn/archives/1988

2. http://coolshell.cn/articles/7490.html

3. ulimit限制之nproc问题: http://blog.yufeng.info/archives/2568

4. 检查丢包利器dropwatch: http://blog.yufeng.info/archives/2497

5. ulimit问题及其影响: http://blog.yufeng.info/archives/1380

c10k问题及其解决方案相关推荐

  1. 聊聊C10K问题及解决方案

    1 C10K问题 大家都知道互联网的基础就是网络通信,早期的互联网可以说是一个小群体的集合.互联网还不够普及,用户也不多.一台服务器同时在线100个用户估计在当时已经算是大型应用了.所以并不存在什么C ...

  2. 工商银行分布式服务C10K场景的解决方案

    简介: 未来,中国工商银行将持续致力于 Dubbo 的金融级规模化应用. 作者:颜高飞,微服务领域架构师,主要从事服务发现.高性能网络通信等研发工作,擅长 ZooKeeper.Dubbo.RPC 协议 ...

  3. 关于C10K问题详解-突破单机性能是高性能网络编程

    本文转自:https://www.jianshu.com/p/ba7fa25d3590 C10K问题由来 随着互联网的普及,应用的用户群体几何倍增长,此时服务器性能问题就出现.最初的服务器是基于进程/ ...

  4. 著名的C10K并发连接问题

    1.前言 对于高性能即时通讯技术(或者说互联网编程)比较关注的开发者,对C10K问题(即单机1万个并发连接问题)应该都有所了解."C10K"概念最早由Dan Kegel发布于其个人 ...

  5. IO 多路复用:C10K 问题

    点击上方"Java基基",选择"设为星标" 做积极的人,而不是积极废人! 每天 14:00 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java ...

  6. 到底一台服务器能够支持多少TCP并发连接?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 朱小厮 来源 | 公众号「朱小厮的博客」 曾几 ...

  7. Dubbo Cloud Native 实践与思考

    Dubbo Cloud Native 实践与思考 分享简介 Cloud Native 应用架构随着云技术的发展受到业界特别重视和关注,尤其是 CNCF(Cloud Native Computing F ...

  8. Dubbo Cloud Native 之路的实践与思考

    Dubbo Cloud Native 实践与思考 Dubbo Cloud Native 实践与思考 分享简介 自我介绍 主要议程 Cloud Native 基础设施 服务发现(Service Disc ...

  9. 网络编程释疑之:单台服务器上的并发TCP连接数可以有多少

    曾几何时我们还在寻求网络编程中C10K问题的解决方案,但是现在从硬件和操作系统支持来看单台服务器支持上万并发连接已经没有多少挑战性了. 我们先假设单台服务器最多只能支持万级并发连接,其实对绝大多数应用 ...

最新文章

  1. swift 通知中心 进入后台多久会通知用户关闭此功能
  2. 消息队列如何保证顺序性?
  3. 电子商务实战课程-张晨光-专题视频课程
  4. ubuntu的两种网络连接模式
  5. 一些值得好好学习的博客或者网站
  6. c语言上机考试设计题及答案,C语言程序设计基础上机考试一题目及参考答案.doc...
  7. python棋盘放麦粒求和递归_Python递归调用实现数字累加的代码
  8. 查看驱动安装错误日志
  9. 图像分割的衡量指标详解
  10. Java开发者必备十大学习网站
  11. 物联网技术在智慧校园中的应用
  12. EDGEX FOUNDRY配置参数 --- sys-mgmt-agent
  13. 鸿蒙系统开发实践--2.标准系统编译
  14. 【三石jQuery视频教程】01.图片循环展示_重发
  15. 入门二叉树,三种遍历,计算结点个数 ,深度 叶子结点个数,第k层结点个数
  16. 曾仕强《领导的沟通艺术》
  17. RGB转换成CMYK
  18. day007-列表和字典
  19. 第07课:使用 HTML 5 API 创建子窗口
  20. 动态磁盘和基本磁盘的区别

热门文章

  1. 支付宝二面:Mybatis接口Mapper内的方法为啥不能重载吗?我直接懵逼了...
  2. 什么是集群?什么又是负载均衡?你说得清楚吗?
  3. Spring Boot 还能“内存泄露”?排它!
  4. 邀请了阿里的学长学姐分享
  5. 2022年了,PyTorch和TensorFlow选哪个?
  6. 10万现金+高薪offer!新网银行智能语音大赛火热进行中
  7. 贝叶斯机器学习:经典模型与代码实现!
  8. 大数据领域75个核心术语讲解!
  9. 「二本生逆袭」引知乎热议,读博后三年两次发Nature,第一学历有那么重要吗?...
  10. 研究生招生多次被“放鸽子”:给学生几点诚信方面的建议