个人pc单机上万并发连接实战

环境

  • 个人电脑*1
  • cpu 2.7GHz 4core
  • memery 4GB
  • 系统ubuntu16个人桌面版

服务

nodejs写的一个hello world的http服务
代码如下

const http = require('http');

const server = http.createServer((req, res) => {
    let now = ''+new Date().getTime()
    res.write(now)
    res.end();
    //console.info(now)
});
server.on('clientError', (err, socket) => {
  socket.end('HTTP/1.1 400 Bad Request');
});
server.listen(8000);
console.info('server started at port 8000!')

测试工具

apache jmeter
测试计划如下
Test Plan
Thead Group(16个线程)
Loop Controller(3000次循环)
Http Request(post http://localhost:8000)

测试结果

执行测试,生成报告的步骤省略
以下为测试报告
{
“Total” : {
“transaction” : “Total”,
“sampleCount” : 48000,
“errorCount” : 0,
“errorPct” : 0.0,
“meanResTime” : 0.6678333333333379,
“medianResTime” : 0.0,
“minResTime” : 0.0,
“maxResTime” : 47.0,
“pct1ResTime” : 1.0,
“pct2ResTime” : 1.0,
“pct3ResTime” : 2.0,
“throughput” : 16500.515641113787,
“receivedKBytesPerSec” : 2110.905809556549,
“sentKBytesPerSec” : 3351.6672396012377
},
“HTTP Request” : {
“transaction” : “HTTP Request”,
“sampleCount” : 48000,
“errorCount” : 0,
“errorPct” : 0.0,
“meanResTime” : 0.6678333333333379,
“medianResTime” : 0.0,
“minResTime” : 0.0,
“maxResTime” : 47.0,
“pct1ResTime” : 1.0,
“pct2ResTime” : 1.0,
“pct3ResTime” : 2.0,
“throughput” : 16500.515641113787,
“receivedKBytesPerSec” : 2110.905809556549,
“sentKBytesPerSec” : 3351.6672396012377
}
}
可以看出,throughput已经达到了16500.

备注:要支持高并发,需要优化操作系统的文件打开数配置,socket相关配置,防火墙相关配置.
这里我都已经配置好了.具体优化自行查阅相关资料.

感想

作为一个有追求的程序员,是不惧挑战的.
纵然学习了各种高并发的理论知识,但是纸上学来终觉浅.
于是想着要实战练习一下.
一般单机并发上万能解决大部分需求了.
当然实际需求并不会是一个hello world.
所以实际我们还需要考虑其他问题.
如果需要实战更高的并发,可以在某某云租几台机器尝试一下.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值