简易服务器压力测试工具

Web开发,少不了的就是压力测试,它是评估一个产品是否合格上线的基本标准,下面我们来一一剖析他们的使用方式。

测试前,前面先把系统的端口限制数改大,看看Mac下面的默认限制

ulimit -a

open files (-n) 2560

2000多的fd数是很小的,我们把他改大,当然我测试过了,也只能开10000而已,Linux可以开6W多,所以:

ulimit -n 10000

在用 ulimit -a 检查一下

open files (-n) 10000

接下来把cpu检查打开,通常我们只看使用率最高的那个即可:

top -n1

-n3 就是前面3个了,以此类推。

OK我们可以继续了。。。

webbench

webbench是一枚强大得可以的压力测试工具,它最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便。

安装:

sudo port install webbench

用法:

webbench -c 并发数 -t 运行测试时间 URL

如:

webbench -c 5000 -t 120 http://www.epooll.com

ab

ab是Apache自带的压力测试工具,非常小巧,可惜的是在mac下面表现不佳,跳动太大,而且还会出现 apr_socket_recv: Connection reset by peer (54) 的错误。ab想说爱你不容易呀,不过Linux下还是比较稳定的,所以还是来说说用法吧。

安装:

http://apache.mirrors.pair.com/httpd/

用法:

ab -c 并发数 -n 请求数 URL

如:

ab -c 1000 -n 10000 http://www.epooll.com

当然其他用法就自己 man ab 然后好好看文档啦

siege

siege是我解决ab该死的 apr_socket_recv: Connection reset by peer (54) 错误时发现的一个好工具,不得不说这工具真心好,用法和webbench一样,但是信息全面很多。

安装:

sudo port install siege

用法:

siege -c 并发数 -t 运行测试时间 URL

如:

siege -c 1000 -t 5s URL

这里要注意的是-t后面的时间要带单位,s表示秒,如果不带,就是分钟,分钟的单位,还是挺长的,所以要注意一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
-------------------------系 统 简 介---------------------------- 网博士企业网站管理系统(ZykjgzsCMS)是网博士研发中心(zykjgzs.cn)专业为企业建站而开发的一款网站程序。该系统采用最简单易用的asp access进行搭建,拥有完善的网站前后台,并特别根据企业网站的特点开发出独具特色的栏目和功能。ZykjgzsCMS是企业建站的绝佳选择!   系统三大特色: 1、全静态:全站生成.html静态页面。降低服务器压力,增强百度收录。 2、高优化:特别针对搜索引擎进行优化处理,让客户快速找到你。 3、够简单:拥有完善后台管理系统,所有内容均可在后台进行更新。非专业人士也可操作。   -------------------------主 机 空 间------------------------------ 程序只支持在根目录下运行,并请使用系统IIS或网上空间进行测试。使用简易ASP测试工具无法保证程序的正常运行。 只要支持ASP程序空间都可以,推荐全能特惠主机http://www.zykjgzs.net   -------------------------主 要 功 能------------------------------ 【企业介绍】自由创建企业介绍,业务介绍,联系方式等栏目 【新闻发布】企业新闻,行业新闻等后台发布功能 【产品发布】自由添加公司产品,管理产品分类 【访客留言】客户留言后台管理,双向沟通 【在线咨询】后台添加在线客服系统 【友情链接】自由添加管理友情链接功能 【导航管理】导航自由更换 【栏目管理】可在后台创建任意栏目 【SEO设置】前台每个页面均可进行SEO优化设置   -------------------------网 站 后 台------------------------------ 后台管理地址:http://你的网站域名/admin/login.asp 用户名:admin 密码:admin 后台文件夹名:admin 数据库存放位置:zykjgzsdata
说明: 1, 暂未实现重传机制, 所以若抓包无响应, 请尝试停止后重发. 2, dhcp状态显示采用1s定时器刷新, 所以状态显示可能存在延时的情况; 3, xcap通过pcap导入报文会有部分字段自动变化, 且导入的报文DHCP数据部分无法正常解析, 建议通过新建的方式解决; 4, 添加报文格式举例: 1,2 说明: 1表示报文组1, 选中报文组后, 在状态栏会显示报文组的索引, 2表示第三个报文, 即索引为3的报文. 版本记录: V1.0.1(基础版本) 1, 支持连接xcap并读取报文功能; 2, 支持刷新按钮自动更新报文功能; 3, 支持选择网卡功能; 4, 支持通过pcap文件打开报文功能(已废弃); 5, 支持指定服务器交互; 6, 支持dhcp交互状态显示; 7, 支持输入框通过正则表达式限制输入字符; 8, 支持选择特定报文操作; V1.0.2 1, 将状态修改为自动显示, 即动态识别报文类型并显示结果; 2, 解决解析option字段, 若字段中存在多个value时存在丢失的问题; 3, 增加鼠标点击状态显示气泡信息; 4, 增加隔行显示不同颜色; V1.0.3 1, 修改dhcp的状态机, 之前的版本是收到报文则发送request, 之后收到报文则认为收到ack. 现修改为只有收到offer报文才发送request报文 , 收到ack报文才结束. 2, 增加dhcpv6功能; 3, 优化代码; V1.0.4 1, 修改request报文由于校验和和报文长度未初始化导致构造错误的问题 V1.0.5 1, 增加服务器地址的气泡提示; 2, 增加自动填充的气泡提示; 3, 添加的报文默认为选中状态; 4, 选择网卡下拉框中将虚拟网卡排放靠后; 5, 关闭程序时自动保存设置; V1.0.6 1, 优化代码, 将字段设置使用统一的函数处理; 2, 状态气泡显示格式化; 3, 双击表格表头实现全选和反选; 4, 增加renew(50%), rebind(87.5%)和release的自动发送功能; 5, 增加手动释放按钮和实现; 6, 增加部分打印信息用于调试; 暂未实现报文重传机制, 计划下一个版本实现 V1.0.7 1, 实现discover/solicit报文自动重传机制 2, renew, rebind以及release修改为手动发送 3, 解决报文发送错乱问题 4, 增加decline报文的发送 5, 解决设备无故发送discover报文问题 问题解决: 1, 停止后再次发送数据会出现数据错乱 分析: 停止客户端的时候, 删除过滤器是通过callback函数删除的, 这里应该是通过filter来进行删除. self.widget.sniff.del_filter(self.callback)修改为 self.widget.sniff.del_filter(self.filter) 2, 设备无故发送discover问题 分析: 由于发送discover报文使用的定时器, 定时器是通过判断当前的direction来确定是否重传的, 而当定时器老化时, 可能正好收到报文导 致direction被修改, 所以导致错误的发送discover报文的问题. 将接收逻辑修改为重传时判断当前状态是否为discover报文, 若是则重传, 否则不重传. V1.0.8 1, 增加inform实现 V1.0.9 1, 增加报文五元组的源mac地址和xid的气泡显示; 2, 增加步长和报文限制功能; 问题解决: 1, 修改ipv6报文添加失败的问题. 由于ipv4报文为xid, ipv6报文为trid, 需要区分处理. V1.0.10 1, 在发送dhcpv6报文之前, 先发送na报文触发服务器学习nd消息. V1.0.11 1, 增加发送solicit/request前, 自动响应ns报文. 自动响应ns报文的目标地址为solicit/request报文源mac地址生成的ipv6地址 2, 实现dhcpv6的renew续约功能. 3, 解决ipv6地址转换格式化不正确, 导致无法响应ns报文问题. 4, 增加日志输出到dhcp.log文件. V1.0.12 1, 增加dhcpv6的续约功能, 通过renew和rebind实现续约, 增加release、decline报文的实现; V1.0.13 1, 解决服务器无法设置ipv6地址的问题. 之前的输入框只允许输入数字和., 修改为运行输入数字.:和a-f 2, 解决多个客户端时, 若选中其中的部分客户端发送时报错. 由于客户端采用的是列表中包含元组的形式, 即[(row, [client1, client2])], 这样实际客户端无法直接通过row索引到clients, 导致列表读 取时溢出. 譬如有1、2、3三行数据, 这里只选中了第三行, 限制为1, 那么如果点击发送, 则clients = [(row, [client1]], 此时clients[2] 就会溢出. 所以这里讲clients修改为字典, 即通过row来索引客户端client = {3: [client1]} 3, 将数据发送放到线程中, 规避模拟大量客户端时界面假死的问题. 4, 当客户端限制小于等于50, 则气泡显示trid和ip地址信息. 当大于50, 则气泡显示获取ip地址的数量. V1.0.14 1, 解决监听报文使用的网卡不正确问题. V1.0.15 1, 解决dhcpv6的响应报文的IANA中包含Status code选项导致程序无法解析的问题. 兼容性处理, 即option为IAAddress时按照IAAddress解析, 当option为status code时按照Status code解析 V1.0.16 1, 解决DHCPv6的client_id的duid处理, 支持任意格式的duid.
通过网上收集和对LINUX服务器性能的分析和体验,整理了几个比较实用,功能比较强大的性能测试工具供亲们下载,虽然网络上都对每个工具做了详细的功能介绍和文档说明,但分得很散,所以, 在此本人将各个比较实用的服务器性能测试工具集中起来,方便开发人员有针对性的测试和对比,在服务器性能方面起到很好的效果。 1、LTP--linux稳定性测试: LTP套件是由 Linux Test Project 所开发的一套系统测试套件。它基于系统资源的利用率统计开发了一个测试的组合,为系统提供足够的压力。通过压力测试来判断系统的稳定性和可靠性。 2、Linux性能测试工具Lmbench:Linux性能测试工具Lmbench是一套简易可移植的,符合ANSI/C标准为UNIX/POSIX而制定的微型测评工具。一般来说,它衡量两个关键特征:反应时间和带宽。Lmbench旨在使系统开发者深入了解关键操作的基础成本。其官方网站是:http://www.bitmover.com/lmbench/。 3、Linux下很全面的监控工具dstat:dstat是一个用来替换 vmstat,iostat netstat,nfsstat和ifstat这些命令的工具, 是一个全能系统信息统计工具. 与sysstat相比, dstat拥有一个彩色的界面, 在手动观察性能状况时, 数据比较显眼容易观察; 而且dstat支持即时刷新, 譬如输入dstat 3, 即每三秒收集一次, 但最新的数据都会每秒刷新显示. 和sysstat相同的是, dstat也可以收集指定的性能资源, 譬如 dstat -c 即显示CPU的使用情况. 下载安装文件dstat-0.6.7-1.el*.rf.noarch.rpm: http://dag.wieers.com/rpm/packages/dstat/ 3、网络流量监测图形分析工具 Cacti:Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具 4、Linux系统维护常用工具sysstat:sysstat这个工具,可以说是linux &Unix; 以及Freebsd最常用的工具。它的主要用途就是观察服务负载,比如CPU和内存的占用率、网络的使用率以及磁盘写入和读取速度等。 5、Apache ab 压力测试:ab的全称是ApacheBench,ab是Apache 附带的超文本传输协议(HTTP)的性能测试工具。 其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求;
网博士企业网站管理系统 -------------------------系 统 简 介---------------------------- 网博士企业网站管理系统(ZykjgzsCMS)是网博士研发中心(zykjgzs.cn)专业为企业建站而开发的一款网站程序。该系统采用最简单易用的asp access进行搭建,拥有完善的网站前后台,并特别根据企业网站的特点开发出独具特色的栏目和功能。ZykjgzsCMS是企业建站的绝佳选择!   系统三大特色: 1、全静态:全站生成.html静态页面。降低服务器压力,增强百度收录。 2、高优化:特别针对搜索引擎进行优化处理,让客户快速找到你。 3、够简单:拥有完善后台管理系统,所有内容均可在后台进行更新。非专业人士也可操作。   -------------------------主 机 空 间------------------------------ 程序只支持在根目录下运行,并请使用系统IIS或网上空间进行测试。使用简易ASP测试工具无法保证程序的正常运行。   -------------------------主 要 功 能------------------------------ 【企业介绍】自由创建企业介绍,业务介绍,联系方式等栏目 【新闻发布】企业新闻,行业新闻等后台发布功能 【产品发布】自由添加公司产品,管理产品分类 【访客留言】客户留言后台管理,双向沟通 【在线咨询】后台添加在线客服系统 【友情链接】自由添加管理友情链接功能 【导航管理】导航自由更换 【栏目管理】可在后台创建任意栏目 【SEO设置】前台每个页面均可进行SEO优化设置
EESai是一套功能强大、代码简洁干练、易改易用,实现您要求的所有常用功能,基于ASP+ACCESS或MSSQL动静(可生成HTML)双态自由切换的终极企业建站系统,提供文章、产品、商品交易、下载、图片、视频、介绍、资质证书、招聘、友情链接等模块可无限制增减频道、无限级分类等,深度SEO优化、业界最专业的ASP技术研究,全开源,可修改,安全、实用、操作简单。 管理后台:输入网址http://您的网址/eesaiadmin/,使用管理员(帐户eesai 密码eesai) 特别提醒:(必看!) EESai16版本采用utf-8国际编码以便适应外国朋友沿用,简易的ASP调试工具大多不支持utf-8编码,故此,建议使用IIS调试、测试本系统(IIS需要开启父目录、给予网站目录文件夹everyone可读写); 如果网站不是放在根目录,请一定要修改/eesai_sai/config.asp、/eesai_sai/conn.asp、/EESaiPlug/guoyansai/config.asp三处的绝对位置; 网站根目录下的Default.asp文件名字、eesaiadmin管理文件夹名字可以任意时间改为任意名字,不影响网站运行,其他文件或文件夹名称修改需要修改对应文件/eesai_sai/config.asp。 二、系统功能介绍 全新高兼容性原创编辑器系统,支持插入媒体、文件、表格等; 新增数据库临时转文件本地储存架构,可以从根本降低数据库的读写压力,提高网站整体访问与反应速度; 除转文件外还设有cookies与application等常规缓存技术,可在后台选择,依据自身运行服务器的能力自由调配; 全新的评论模式,设有评论开关,这些都可自由添设; 后台自动生成调用代码,支持即时预览,全ASP模板开发,方便大家自由增减页面功能; 网站系统所有上传接口均使用阿赛无组件文件上传系统5,安全性和实用性极高,并提供单独版本下载使用; 全站启用随机验证码和内设验证码验证提交数据,拒绝机器人发送垃圾信息充斥网站,提高网站安全性; 系统自带加密功能,对某些只想指定人看到的内容,可以通过加密来实现; 开放代码,全开源严密架构,预留足够功能扩展空间,可方便二次开发与修改; 内容集合储存,方便全局管理,设有频道、无限级分类方便归类各内容; 已有开发频道产品、文章、商城、图片、多媒体(播放影音视频)、介绍、资质、照片、链接等,可自行拓展其他功能; 点击访问数、好评等网友很喜欢的即时交互系统; 程序、模版、网站数据与设置等分离储存,方便大家更新制作模版与开发新功能; 后台管理开放提供批量审核、推荐、删除等大规模操作按钮,方便大家大批量更改网站,请大家操作时小心谨慎; 提供六种可选的列表模式标题列表、图文列表、图片列表、简介列表、全文列表、云签模式,可通过频道管理进行单个频道设置; 鼠标注释美化升级,摒弃之前的美化方式,采用全新美化JS,兼容性和反应速率均有提高; 全站div+css标准页面设计架构,延续系统的一贯复古风格,可通过对ASP页面的HTML模版直接编辑以便达到不同效果; 管理员入库,可添加多个管理员,每个管理员可设置不同的权限,有首席管理员、站长、编辑人员、后台游客等; 网站设有cookies、session、application、file等多种模式的缓存保存机制,大家可根据自身需要进行选择; 网站主页和频道首页各设有舌签模式和列表模式两种主体内容显示方式,可通过对网站设置选择适合自己的; 网站导航支持二级下拉幻色,更美观,兼容性也好很多; 整站幻灯片为旧版的加强版支持所有常规浏览器,并已测试通过,纯js+css完成,支持一个页面调用多个幻灯片; 系统使用三色调配原则,大家可以按颜色喜欢在后台直接调试喜欢的色彩风格; 阿赛全新聊天系统嵌入版本; 支持sitemap在线生成,及xml搜索引擎蜘蛛文件系统生成; 自带完整的网站访问统计功能,含今日访问、昨日访问、最高访问、历史访问、开站多少天、平均每天访问等; 同时系统设有在线人数统计与显示,可以凭借后台直接设置以上两统计的开关; 提供在线聊天功能,可在网站开设小型缓存application类聊天室,反应速度超快,管理性卓越; 提供新式阿赛文件在线管理工具,支持在线管理网站及各个文件及文件夹,同时还支持对网站编码类、文字类文件的修改; 网站设置、系统设置、广告设置独立储存,可在线管理与设置,方便大家对网站的备份操作,普通操作只需保护好核心数据文件夹内内容即可; 全站生成静态HTML网站的功能,同时支持多种生成静态HTML网站的模式选择,自动生成、仅生成一些指定的页面等; 支持标签及搜索关键词储存查找与显示; 在线留言使用自定义文本txt文件储存,登录后台第一眼看到,可自由修改删除等,提高留言提交速度
一个简易的web服务器通常包括以下几个步骤: 1. 创建一个TCP socket并绑定到指定的IP地址和端口号。 2. 监听来自客户端的连接请求,使用accept()函数接受客户端的连接请求。一旦接受请求,服务器将创建一个新的线程或进程来处理该连接。 3. 接收来自客户端的HTTP请求,解析请求头和请求体。 4. 处理客户端的请求,例如读取文件或执行CGI程序,并生成HTTP响应。HTTP响应包括响应头和响应体。 5. 发送HTTP响应给客户端,关闭连接。 以下是一个简单的Python代码实现: ```python import socket HOST = '127.0.0.1' # 指定服务器IP地址 PORT = 8000 # 指定服务器端口号 def handle_request(client_socket): request_data = client_socket.recv(1024) print(request_data.decode()) response_body = '<html><body><h1>Hello, World!</h1></body></html>' response_header = f'HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nContent-Length: {len(response_body)}\r\n\r\n' response = response_header.encode() + response_body.encode() client_socket.sendall(response) def run_server(): listen_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) listen_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) listen_socket.bind((HOST, PORT)) listen_socket.listen(1) print(f'Server is listening on {HOST}:{PORT}...') while True: client_socket, client_address = listen_socket.accept() handle_request(client_socket) client_socket.close() if __name__ == '__main__': run_server() ``` 这个简单的web服务器监听8000端口,一旦接收到客户端的连接请求,就会生成一个HTTP响应,其中包含一个简单的HTML页面。这个服务器只能处理一个客户端请求并返回响应,如果需要支持多个客户端同时连接,需要使用多线程或异步IO等技术。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值