中科曙光-基于国产芯片高端计算机研发及扩产项目可行性研究报告
1、项目概况
当前我国采用进口处理器芯片的高端计算机占据国内市场 90%以上的份额。受信息产业安全、供应链安全等多方面因素的影响,发展基于国产处理器的高端计算机的重要性日益凸显。
目前,国产处理器芯片已经较为成熟,主要架构包括 X86、MIPS、ARM 等,不同架构的处理器芯片具有各自的适用场景和应用优势,适合多头并进,协调发展。
本项目研发基于 X86、MIPS、ARM 等不同架构国产处理器芯片的高端计算机系列产品,满足高端计算机国产化过程中不同场景的需求,打破国外厂商对中国计算机产业的技术垄断,促进中国信息产业的持续 健康 发展。项目达产后,不但能够为中国行业用户提供更多高性价比的选择,还可以保障关键信息系统的安全可控,具有广阔的市场发展空间和前景。
2、项目实施的必要性
(1)保障信息安全和产业安全
掌握基于国产处理器芯片的高端计算机设计与制造技术,是保障国家网络与信息安全的前提条件。根据工信部数据,中国集成电路进口额居各类进口产品之首;国务院发展研究中心发布的《二十国集团国家创新竞争力黄皮书》也指出,中国关键核心技术对外依赖度高,80%芯片都靠进口。在高端计算机领域,包括处理器芯片在内的核心部件几乎完全依赖国外进口,使我国高端计算机在产业链供应方面存在较大的安全隐患。
过去几年里,国产处理器芯片技术取得长足进步,先后出现了 X86、MIPS、ARM 等不同架构的多款国产处理器芯片,接下来推动基于国产处理器芯片的产业生态环境建设任务极为紧迫。研发基于国产处理器芯片的高端计算机系列产品,能够保障关键信息系统的安全可控,打破国外厂商在集成电路产业的技术垄断和安全威胁,扭转我国信息技术被动局面,促进中国信息产业的持续 健康 发展。
(2)促进信息技术应用创新和产业生态环境建设
目前全球高端集成电路产业处于垄断竞争格局,西方国家的处理器芯片巨头厂商如 Intel、AMD 等,通过数十年的持续技术创新和巨额投资,建立了强大的专利壁垒、技术标准体系和产业生态体系,牢牢控制了全球绝大部分市场。虽然我国在这个领域取得了一定的创新和突破,但我国在这个领域的产业基础非常薄弱,技术人才和资金等资源都不足。
推动国产处理器芯片的产业化,需要构建“芯片设计与制造、整机系统、软件生态、应用服务”完整创新链和产业链,方能保障相关产业的持续 健康 发展。研制基于国产处理器的整机系统,一是推动国产高端计算机产业发展,高端计算机面向国民经济主战场,属于信息行业发展的基础保障设施,只有研制基于国产处理器芯片的高端计算机,才能继续推动信息技术应用创新的产业生态环境建设,推动国产处理器在各行业领域的应用和产业发展;二是为其他相关产业发展消除潜在的隐患,我国众多产业的技术研发和运营在一定程度上依赖于高端计算机,若因各种原因导致核心芯片供应链受到影响,则可能对我国若干依赖于云计算、大数据、人工智能、高端计算机平台的行业和产业造成巨大不利影响。
(3)提升企业竞争力和可持续发展能力
长期以来,高端计算机处理器芯片的价格主导权被少数国外企业控制,国内高端计算机企业的盈利空间和盈利能力受到很大约束和限制。通过研制不同体系架构的基于国产芯片的高端计算机,将促使公司更专注于自主核心产品研发,进一步加强在该领域的技术优势,不断推出多种类型、易于为不同市场接受的系列高端计算机产品,不仅可以提高我国整机企业的盈利能力,也将极大降低我国信息化和智能化的成本,促进我国数字经济和智慧 社会 安全、高质量发展。因此,项目的实施将确保公司产品在技术规格上保持领先优势,持续满足广泛的行业用户和应用需求,进一步提高公司产品的市场竞争力,获得更好的经济和 社会 效益。
3、项目实施的可行性
(1)项目研发符合国家政策方向
“新基建”政策的本质是推动支撑传统产业向网络化、数字化、智能化方向发展的信息基础设施的建设,加速全产业的数字化转型,以促进现代信息技术与产业经济的融合,使得经济能够在数字化的辅助之下产生新的质变。
近年来,国家层面不断推动信息技术应用创新发展战略,引导我国企业研制具有自主知识产权和国际竞争力的产品,提高我国信息技术水平和信息产业的可靠性和安全性。另一方面,本项目基于国产处理芯片研发的高端计算机,对支撑我国现代服务业发展,提升传统产业竞争力,推动国内信息产品智能制造能力达到国际先进水平等方面也具有重要的战略意义。本项目属我国重点发展的战略新兴产业,符合《“十三五”国家信息化规划》等产业政策导向。
(2)公司具备本项目实施所需的技术和研发基础
公司是国内最早从事高端计算机业务的厂商之一,主要涉及高性能计算机、通用服务器产品的研发、设计、生产和销售。公司在高性能计算机体系结构、高效能计算系统、高速互连技术、液体冷却技术、高端计算机管理和运维软件、先进计算服务平台软件等方面具有深厚的技术积累。近年来,针对市场形势的变化,公司加大了基于国产处理器的高端计算机产品的预研力度,攻克了基于国产处理器的高端计算机产品研发的各项技术难题,预研样品在产品规格、产品品质、产品易用性等各个方面达到国内领先水平。
作为国内高端计算机领域的核心厂商,公司拥有完备的研发人员储备及技术服务体系。公司研发中心是国家发改委等六部委批准的国家认定企业技术中心,并获批建设国家先进计算产业创新中心。研发人员队伍知识结构和年龄结构合理,具有雄厚的系统级研发实力,在系统架构设计、硬件研制、操作系统研制,以及行业应用软件定制和优化方面已有大量积累。公司成熟的生产制造体系和技术服务体系也是项目成果产业化的重要保障和成功基础。
(3)公司具备项目相关解决方案支持和销售渠道基础
公司多年来一直在自主创新领域全面布局,构建了从芯片硬件、系统解决方案到先进计算、云计算服务的全链条布局,公司产品的客户群体遍及政府机关、企业、电力、教育、医疗、科研机构等诸多行业。公司目前已开始建设基于国产处理器芯片的解决方案中心和产业生态平台,并吸纳大量周边解决方案提供商加入到基于国产芯片的产品生态系统,以平台生态合作带动国产芯片通用行业解决方案的规模化,预计未来五年能够在多个技术和行业领域实现全国产化的产业生态系统。公司在高端计算机产品开发和产业化过程中,积累了大量的技术支持经验和解决方案资源,有助于确保本项目拟研制产品的成功推广和规模化销售。
4、项目建设规划
(1)项目实施主体
本项目的实施主体为中科曙光。
(2)项目投资额
本项目总投资金额为 200,00000 万元,拟使用募集资金投入 200,00000 万元,用于研发设备购置、知识产权购置、生产设备购置、研发人员支出、研发材料及组件支出等。
(3)项目建设内容
本项目分别基于 X86、MIPS、ARM 架构的国产处理器芯片,开展高端计算机整机系统研发,设计具有国际先进水平的高性能工作站、边缘服务器、人工智能服务器、存储服务器、多节点服务器等不同规格的高端计算机产品,实现不同架构、不同规格、不同形态、广泛覆盖的国产高端计算机综合解决方案。
1)X86 架构高端计算机产品:本项目基于 X86 架构国产处理器研制 5 款高端计算机产品,包括:
① 高性能工作站 :研制基于国产 X86 处理器的高性能工作站产品。为特种应用、电力、金融等行业提供满足业务需求的高性能工作站;为制造业设计仿真、**特效制作、科研开发提供支持高端显卡、大容量内存的高性能工作站;
② 边缘服务器 :研制基于国产 X86 处理器的边缘服务器产品。在边缘计算场景下,对大量靠近终端的现场数据进行实时处理,减少对数据中心的冲击和直接依赖;大幅缩短数据的传输距离,减少网络传输和延迟问题,提升应用和服务的效率和可靠性,降低成本;
③ 人工智能服务器 :研制基于双路高性能国产 X86 处理器的人工智能服务器。提供多种 GPU 连接拓扑,可为不同的深度学习应用提供不同的优化方案,为人工智能的训练、推理学习提供强大的运算能力;
④ 存储服务器 :研制基于国产 X86 处理器的高性能存储服务器。具备高密度存储空间,提供强大的计算性能和丰富的 IO 扩展,适用于对存储容量、服务器性能、可扩展性及可靠性要求严格的金融、交通、电信、能源、互联网等行业;
⑤ 多节点服务器 :研制基于国产 X86 处理器的多节点服务器。采用模块化设计,具备卓越的计算性能和强大的 IO 扩展能力,为企业级用户、云计算中心、大数据、高性能计算等多种业务提供集群服务器系统。
2)MIPS 架构高端计算机产品:本项目基于国产 MIPS 架构处理器研制 3 款高端计算机产品,包括:
① 办公工作站 :研制基于国产 MIPS 处理器的办公工作站。为政府机关、特种应用等场景提供业务办公终端,具有独特的安全设计,消除电子政务等众多战略领域的安全隐患;
② 文档服务器 :研制基于国产 MIPS 处理器的文档服务器。面向电子政务信息服务的需求,提供政府部门重要文档的存储备份、检索功能;兼容主流国产操作系统、数据库软件等;消除电子政务等众多战略领域的安全隐患;
③ 存储服务器 :研制基于国产 MIPS 处理器的存储服务器。针对不同的云数据平台使用场景,提供基于 MIPS 架构处理器的基础型存储服务器产品,适用于大规模云计算环境的低成本近线存储系统。
3)ARM 架构高端计算机产品:本项目基于国产 ARM 架构处理器将研制 3 款高端计算机产品,包括:
① 办公工作站 :研制基于国产 ARM 处理器的办公工作站。为政府机关、特种应用等场景提供业务办公终端,具有独特的安全设计,消除电子政务等众多战略领域的安全隐患;
② 文档服务器 :研制基于国产 ARM 处理器的文档服务器。面向电子政务信息服务的需求,提供政府部门重要文档的存储备份、检索功能;兼容主流国产操作系统、数据库软件等;消除电子政务等众多战略领域的安全隐患;
③ 存储服务器 :研制基于国产 ARM 处理器的存储服务器。针对不同的云数据平台使用场景,提供基于 ARM 架构处理器的基础型存储服务器产品,适用于大规模云计算环境的低成本近线存储系统。
(4)项目建设周期
本项目建设期 3 年。
5、项目预期效益
经测算,本项目税后财务内部收益率为 1254%,税后投资回收期(含建设期)为 622 年,经济效益指标良好。
6、项目的批复文件
本项目不涉及厂房建设及新增用地。截至本报告公告之日,本项目尚在办理备案及环评手续。
7、编制单位介绍
深圳市思瀚管理咨询有限公司是专业产业规划研究服务机构,主要提供可行性研究报告、商业计划书、行业研究报告、概念性规划、初步规划、建筑规划、产业规划、园区规划、企业IPO上市咨询等相关业务。
思瀚将人才培养作为企业发展的根本,制定人才培养“三鹰”计划,通过“雏鹰计划”加速新员工成长,通过“飞鹰计划”助推骨干提升,通过“精鹰计划”培养具有国际化视野的复合型人才,实现个人发展与组织发展的双赢。拥有资本市场及产业研究投资经验的专业管理团队审核体系人员组成,目前思瀚研究产业研究院拥有分析师、咨询顾问、产业项目行业专家为客户提供一站式、个性化、综合性的企业咨询解决方案,80%以上具备相关专业硕士学位,他们均是各自所在领域的权威人士,通过优质整合成为服务客户的强大智囊顾问团,更好的为客户提供高质量个性化定制服务。
1 http代码表,常考题目
404:找不到资源
500:服务器内部错误,无法完成请求。
501:服务器不支持请求的功能,无法完成请求。
502:充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。
301:永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI,今后任何新的请求都应使用新的URI代替。
302:临时移动。与301类似。但资源只是临时被移动,客户端应继续使用原有URI。
200:成功。
2 TCP/IP四层网络模型
链路层、网络层、传输层、应用层。
3 TCP/UDP区别?
TCP: 可靠传输协议,需要三次握手连接,有确认重传机制,特点是可靠、准确、有拥塞控制,缺点就是比较慢,传输量比较小,适用于升级、下载;一句话:TCP是可靠的传输。
UDP: 不可靠传输协议,面向非连接的协议,优点是传输量大、速度快,缺点是已丢失、没有拥塞控制,适用于直播、视频等。一句话:UDP是不可靠的传输。
4 html css js运行的先后顺序是什么?
界面加载的时候先加载html在加载css最后加载js
5 session和cookie的区别是什么
1 session存放在服务器端用来校验客户端的身份
2 cookie存放在客户端,每次从客户端往服务器发请求时,将cookie带到服务器端,用来校验客户端的身份
1 怎么用JMeter测试接口?
如果使用JMeter进行接口测试:
1) 测试前了解需求,根据接口规格说明书梳理业务;
2) 接下来设计用例,分析接口的入参和出参,分清楚有哪些有效输入和无效输入,设计用例(原则:用最少的用例覆盖所有有效输入,针对每一个无效的输入设计一个测试用例,如果有错误码没有覆盖到,还要对每个未覆盖的错误码分别设计一个用例);
3) 准备测试数据,比如:测试所需的账号、密码、key 等信息;
4) 打开JMeter,创建一个线程组,根据接口类型,填写好对应的接口地址和请求方式等;
5) 参数化配置,添加配置元件CSV Data Set Config,定义变量,并准备CSV格式的数据,变量的引用用${变量名}的格式;
6) 添加断言来判断测试结果的正确性,用得最多的是响应断言;
7) 添加监听器,比如查看结果树,对测试结果进行监听;
8) 运行测试用例;
9) 查看监听器结果,来判断用例的执行是成功还是失败,针对失败的用例,分析其失败原因;
10) 针对测试中发现的问题,给开发提单,直到问题最终解决。
11) 最后输出测试报告。
2 怎么用Postman测试接口?
如果使用Postman测试接口:
其中1,2,3点相同,工具使用方面则比JMeter跟简单,工具的主要的步骤是添加对应的请求、填写主机URL及入参、添加测试套、运行测试套、分析结果出报告。
3 在JMeter上如何把上一个请求的结果作为下一个请求的参数?
使用正则表达式提取器提取上一个请求的响应中的信息,保存一个引用名称比如abc,在下一个请求的参数中,用${abc}的格式来引用提取的结果。
常用的正则表达式格式:(+),其中表示匹配任意字符串,+表示只匹配一次,?表示匹配到就停下来。
一般是我们功能测试完成最后两三天时间测试性能。
1、先是分析需求计算出并发数,TPS,响应时间和 CPU,内存,硬盘和网络IO这些指标。
2、制定测试方案,主要包括环境,计划和具体测试那些场景(如可靠性,并发,负载,压力测试等)
3、根据场景用Badboy录制脚本,导出为JMeter工具支持的脚本。
4、用JMeter工具打开脚本,进行脚本调试,加一些断言,监听器,参数化等。
5、接下来执行性能测试,然后主要收集监听器和收集服务器CPU,内存,硬盘和网络IO等分析是否满足需求,如果满足就输出性能测试报告。
6、如果指标不能满足,反馈给开发进行调优。调优后继续测试,一直到满足需求后最终输出测试报告。
1 Python怎么定义一个函数?
你可以定义一个由自己想要功能的函数,以下是简单的规则:
1) 函数代码块以def关键词开头,后接函数标识符名称和圆括号()。
2) 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
3) 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
4) 函数内容以冒号起始,并且缩进
5) return[表达式]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None
2 Python切片
3 Python上用过什么库/模块?
webdriver:定位和操作元素
time:设置等待时间
ActionChains:动作链,完成鼠标的相关操作
Keys:键盘的相关操作
WebDriverWait:设置显式等待
Expect_Conditions:针对单个元素,设置显式等待的场景
PIL:截图
Select:下拉选择框的操作
unittest python:自带的单元测试框架
HTMLTestRunner:运行脚本,生成报告
ddt:实现数据驱动测试,行为和数据分离
4 你做过自动化测试吗?
我在上一份工作中,公司去年下半年也开始规划做Web 自动化,采用Python作为开发语言,通过Selenium WebDriver定位和操作页面元素,自动化框架用的是unittest。我主要负责写测试脚本。
假设一个测试团队有5个人:1资深(测试经理)+2~3个中级(自动化+手动)+1 个初级(手动)
5 使用什么工具进行的自动化测试
使用的工具是Selenium(Web自动化工具)
6 用的什么编程语言
用的Python
7 Selenium 用的是哪个版本的的?Python用的是哪个版本的?
用的是selenium 3110和Python2710
8 Selenium的工作原理?
1)对html元素定位
2)模拟对第一步定位到的元素进行点击、输入、选择等操作一句话:定位元素,操作元素。
9 元素定位方法有哪些?
要点:8种定位方法
1) 根据元素的属性值定位,比如 id、name、class、标签名、链接文字和部分链接文字;
2) 根据CSS选择器定位;
3) 根据 XPath 定位;
10 子页面里的元素怎么定位?
先切换到框架里,然后再定位,用switch_to_frame函数根据子页面id或name,切换到子页面;定位完了如果要再定位主页面的元素,要用switch_to_default_content 函数先返回主页面。
11 怎么定位alert弹窗?或者这样问:怎么处理JS原生窗口?
要点:主要涉及点击弹窗确认按钮、强行关闭弹窗、获取弹窗中的文字等操作。
1) 点击弹窗的确定按钮,用如下函数:
driverswitch_to_alert()accept()
2) 强行关闭,点击右上角的叉叉,用如下函数:
driverswitch_to_alert()dismiss()
3) 获取弹窗里的文字,用如下函数:
driverswitch_to_alert()text
12 怎么运行自动化用例并生成测试报告?
以unittest为例,我通常的做法是把用例加载到测试套中,做成一个脚本,在命令窗口下运行脚本,报告的生成用第三方模块HTML TestRunner来生成。
13 怎么定位/操作中的验证码?
用tesseract OCR引擎处理中的验证码,步骤:
(1)对整个屏幕截屏,保存成png格式的;
(2)在截取的中定位验证码的位置坐标;
(3)根据坐标对验证码截图;
(4)在中提取验证码,输入到输入框。
问题一:性能测试应该做哪些准备 环境搭建:这个根据实际规划,我在企业内做过的性能测试搭建的环境都是和用户上线使用的实际环境一样的。
数据准备:个人感觉是整个工作里第二耗时的,需要真实模拟用户数据,这个不是单单的创建几个帐号就完事的,每个用户基本都会有不太一样的配置,实际操作的时候部署数据的脚本都写到手软。
脚本编译:选择性能工具编译性能脚本,你需要跑什么业务流程就编译什么样的脚本。
脚本执行:用规划好的用户数执行脚本,这个一般持续很长时间,时间太短不足以暴露服务器等的性能瓶颈,性能测试中最耗时的就是这个步骤。
收集日志:在执行脚本完成后收集到的能客观反应系统性能的日志、报表文件,比如LR的报告、数据库的AWR日志等等。
分析结果:分析收集到的日志、报表,找出性能瓶颈或是得出性能指标结果。这个一般需要对数据库或者底层非常了解的专业人士来分析,一般测试人员只需要提供收集到的报告就差不多了。
生成报告:将上面所有的性能测试活动整理总结,输出测试报告。
问题二:如何做好性能测试? 你好,首先很欣赏你的这种态度。我在TestBird 招聘新人的时候,也有很多小朋友觉得自己有多了解工具运用,有多熟练步骤过程,自我感觉很不错。
其实,我却想说,性能测试的重点不在性能测试工具的学习上。
当然,你也通过分析系统的压力点、LR录制脚本,设置用户,做压力,分析结果,整理测试报告。完成了性能测试的整个过程。那么我说这个性能测试报告是有效的,但它不一定是有用的。
为什么呢?因为在性能测试报告中,在你所在的环境中,你是测出了这样的效果。并未掺假,全部真实的记录。
为什么说它不一定是有用的,你了解系统架构么?知道数据库、中间件、前端程序的运行方式和处理机制么?了解网络协议么?了解操作系统么?熟悉开发系统的语言么,如java JVM的内在机理知道么?这些都是系统运行的一部分,都在影响着系统的性能。如果不了解这些,你如何做出有价值的有参考意义的性能测试。
所以,学会这些性能测试工具很好,但是这仅仅是第一步。性能结果只是一些数据而已,知道你在做什么,为什么要做这些,做完后能给出有价值的东西,才是后面要慢慢修炼的。
问题三:移动客户端的性能测试如何做? 。就当练习了。。大家看了不要喷我。。现在很多测试人员做移动端测试,可能主要还是关注功能和自动化测试。性能测试可能大多是按照每个人的体验来做报告,是不是比较快,或者比较慢。当然也不乏有很多的测试人员会回复我说,性能测试都是服务器的,移动端根本就不需要性能测试。我实在觉得可笑。 不过我毕竟一直在创业公司,而且就我一个人,所以了解可能有限,我这里就说下我之前碰见的,所知道的,目的只是抛砖引玉。 另外,我这里也不去说什么MAT,instruments了,这种固有查找内存的工具大家自己google吧。 客户端的性能从系统层面,电量消耗,网络流量,内存泄漏等都是被关注,或者说用户最最关注的点。 实例一,3rd 应用的性能测试。应用本身的响应时间可以通过call 应用intent来查看,设备纯环境,设备低内存等各种情况下进行同样此数的call,进行对比。或者与同行业同性质的应用进行对比测试。我相信很快就能够有结论了。除了应用本身,还需要对于应用本身某些特别的功能进行响应测试。比如测试一个list,测试的方法为onkeydown之后查看这个listindex(0)是否高亮,是否正常的界面跳转了,那么分别进行计时(精确ms)。同样的,我们在空list以及有几百条list的情况进行这样的case test,那么就会有一个性能的结果出来。 实例二,假设你测试微薄客户端,那么你肯定是需要进行一个list上下滑动的性能测试。我们需要使用脚本语言shell或者python去call server api来仿造数据反馈到移动设备上,否则你不可能自己手动去发几百条weibo然后再测试。测试的时候需要关注两个问题,一个是list在各种情况下是否滑动流畅,一个是当list中有很多的的时候load的速度也是一个很大的测试点。这个load可以直接检查imageview什么时候load出来pic,什么时候显示在界面上,计算时间。这里其实很多应用是webview,或者数据是存在服务器端的,这个时候无论是平时的测试还是压力,还是性能,数据的修改,其实还是多使用脚本ping api比较好,能够很好的去辅助达到性能测试的效果。 实例三,比如要测试一个优酷的视频软件,那么视频的播放的时候,首先保证网络的情况下,各种分辨率各种码率的视频接入时间是需要关注。然后在播放,也就是和网络不停的通信的同时,那么需要通过tcp dump和wireshark工具来检查网络访问是否正确,视频的卡顿,视频的花屏等除了硬件兼容之外,可以通过抓包来判断其性能。如果丢包率高那么自然视频卡,体验不好,性能也就不会好。 其实以上只是一些很基础,现在很多公司也已经在这个基础上改良测试了。不过也是一些思路,让更多的企业和测试关注移动客户端的性能。不要一提到性能脑中只有LR等这些Server测试。
问题四:为什么要进行性能测试 原因有三:
川 开发者的水平各有不同,有的写出来的东西性能高,有的低,所以需要统一测试一下。
2 编程工具本身也有性能问题,用这样的工具开发出来的软件也要确认一下是否达到了需求所要求的性能指标,比如响应时间应该控制在多少秒以内。
3 性能测试,强度测试都是为了测试系统的稳定性,稳定性好,软件的质量就好,买的钱就多。
问题五:如何进行Web服务的性能测试 贴一篇我们内部的文章:
随着浏览器功能的不断完善,用户量不断的攀升,涉及到web服务的功能在不断的增加,对于我们测试来说,我们不仅要保证服务端功能的正确性,也要验证服务端程序的性能是否符合要求。那么性能测试都要做些什么呢?我们该怎样进行性能测试呢?
性能测试一般会围绕以下这些问题而进行:
1 什么情况下需要做性能测试?
2 什么时候做性能测试?
3 做性能测试需要准备哪些内容?
4 什么样的性能指标是符合要求的?
5 性能测试需要收集的数据有哪些?
6 怎样收集这些数据?
7 如何分析收集到的数据?
8 如何给出性能测试报告?
性能测试的执行过程及要做的事儿主要包含以下内容:
1 测试评估阶段
在这个阶段,我们要评估被测的产品是否要进行性能测试,并且对目前的服务器环境进行粗估,服务的性能是否满足条件。
首先要明确只要涉及到准备上线的服务端产品,就需要进行性能测试。其次如果产品需求中明确提到了性能指标,那也必须要做性能测试。
测试人员在进行性能测试前,需要根据当前的收集到的各种信息,预先做性能的评估,收集的内容主要包括带宽、请求包大小、并发用户数和当前web服务的带宽等
2 测试准备阶段
在这个阶段,我们要了解以下内容:
a 服务器的架构是什么样的,例如:web服务器是什么?是如何配置的?数据库用的是什么?服务用的是什么语言编写的?;
b 服务端功能的内部逻辑实现;
c 服务端与数据库是如何交互的,例如:数据库的表结构是什么样的?服务端功能是怎样操作数据库的?
d 服务端与客户端之间是如何进行交互的,即接口定义;
通过收集以上信息,测试人员整理出服务器端各模块之间的交互图,客户端与服务端之间的交互图以及服务端内部功能逻辑实现的流程图。
e 该服务上线后的用户量预估是多少,如果无法评估出用户量,那么可以通过设计测试执行的场景得出这个值;
f 上线要部署到多少台机器上,每台机器的负载均衡是如何设计的,每台机器的配置什么样的,网络环境是什么样的。
g 了解测试环境与线上环境的不同,例如网络环境、硬件配置等
h 制定测试执行的策略,是需要验证需求中的指标能否达到,还是评估系统的最大处理能力。
i 沟通上线的指标
通过收集以上信息,确定性能测试用例该如何设计,如何设计性能测试用例执行的场景,以及上线指标的评估。
3 测试设计阶段
根据测试人员通过之前整理的交互图和流程图,设计相应的性能测试用例。性能测试用例主要分为预期目标用户测试,用户并发测试,疲劳强度与大数量测试,网络性能测试,服务器性能测试,具体编写的测试用例要更具实际情况进行裁减。
用例编写的步骤大致分为:
a 通过脚本模拟单一用户是如何使用这个web服务的。这里模拟的可以是用户使用web服务的某一个动作或某几个动作,某一个功能或几个功能,也可以是使用web服务的整个过程。
b 根据客户端的实际情况和服务器端的策略,通过将脚本中可变的数据进行参数化,来模拟多个用户的操作。
c 验证参数化后脚本功能的正确性。
d 添加检查点
e 设计脚本执行的策略,如每个功能的执行次数,各个功能的执行顺序等
4 测试执行阶段
根据客户端的产品行为设计web服务的测试执行场景及测试执行的过程,即测试执行期间发生的事儿。通过监控程序收集web服务的性能数据和web服务所在系统的性能数据。
在测试执行过程中,还要不断的关注以下内容:
a web服务的连接速度如何?
b 每秒的点击数如何?
c Web服务能允许多少个用户同时在线?
d 如果超过了这>>
问题六:网站性能测试主要有哪几种方法 我知道的性能测试主要有:压力测试,负载测试,容量测试,发性能测试,兼容性测试(不同的操作系统和不同的浏览器)。测的时候应用在客户端的性能、应用在网络上的性能和应用在服务器端的性能都要进行测试的。
希望能帮到你。
问题七:怎么才能做性能测试工程师? 性能测试实际上确实需要些功底儿,但是也并不是非得一两年之后才去做。
我给你列几条性能测试工作中的建议,你可以自己温习一下,然后去面试,具体的经验需要实际的工作才能得到,然而你扎实的基础知识才识支撑你走下去的动力。
1,最直接也是最表面的建议,适用于面试:Loadrunner, HttpWatch, Dynatrace, TeamQuest, JMeter(可选), Wily(可选), HTML/HTTP, Webservice, Mainframe, DB 这些东西足够学很久很久的了,所以说需要几年的工夫,但是没必要每一样都学太深,了解即可,经验日后会积累到的。
2,相对比较深层的建议:性能测试最关键之处不是工具的选择,而是对整个性能参数的理解,所以比较贴近于概念,比如说什么是TPS, Response Time, Connection浮 per Second还有就是什么是CPU Utilization, FreeMem, Disk IO, Paging 工具也无非都是通过日积月累形成的客户端,所以抓到本质才是关键。
不在这里长篇大论了,呵呵,加油!
问题八:性能测试应该怎么做 需求分析 - 测试设计 - 测试执行 - 结果分析
问题九:APP如何做性能测试 目前市面上有很多家做安全加密的平台都有做安全检测,但是大部分需要付费,如果说只是个小项目的话花钱去做的话成本太高,也不建议去做
你可以了解下爱内测这个平台,专门做测试的,有安全检测、兼容测试、插件评估等,虽然这个平台也是付费的,但是他有免费的版本提供,个人觉得安全检测免费版本已经足够强大了,自动化生成测试报告,提供精准的检测数据
希望可以帮助到你
问题十:服务端怎么做性能测试 使用LR对数据库进行性能测试,实际上有多种办法,包括通过现有的数据库协议进行CS模式的先录制后执行的模式,以及通过socket方式向服务器发包方式的测试方式。这些是常规书籍上介绍的比较简单上手的测试方法,但是不具备通用性,受已有协议或socket编程方式的限制,所以需要更为通用的测试方法。
用Java user的协议进行所有数据库性能的测试工作:
Java user 不需要录制,把所有的操作通过java语言进行实现,通过lr调用java的class进行加压批量操作,这样可以不关心被测系统是哪个数据库,只要能够通过jdbc进行访问,就能实现性能测试。
一、测试环境准备
1 被测服务器准备,根据测试目的,搭建需要的数据库服务器,确保数据库能够正常访问,正常操作;
2 Java代码的准备,无论使用哪种IDE,只要能够编写访问数据库的class就可以,形式可以是j2se,也可以是j2ee,因为在操作时只使用class的部分方法,所以j2ee就可以了;
3 LR的脚本调试,把java的class导入到脚本调试模式,根据需要添加事务以及其他操作。
二、编写数据库访问
1 使用myeclipse,创建web project,创建如下图的包目录:
Java文件中包含各种访问数据库的方法。
需要注意的是,class中的方法必须是public static,否则LR中无法调用。由于创建的是j2ee程序,所以不用main函数,在web中就可以进行功能验证。
确认class中的方法编写完成,创建一个webjsp文件,如下:
导入class
声明类,并实例化,直接调用刚才编写的3个方法,因为这3个方法是直接对数据库进行操作,不需要实参,也没有返回值,所以直接实现即可。
此时启动web服务,在浏览器中输入jsp的地址,直接刷新页面,就可以调用这3个方法,如果正确,就会对相应的表进行操作,如果不正确,则需要修改相应的代码。
2 LR脚本准备:
LR脚本实际上就是对访问代码的调用,关键在于需要根据测试场景划分不同的脚本布局。
例如:在myEclipse里,我们只编写了一个class,其中包含三个方法,如果在执行性能测试时,这三个方法相互独立,互不干涉,则最简单的划分方法是,创建三个java user,每个java user中包含一个方法,做三份脚本,场景执行时分别进行调用。如果三个方法之间有相互关系,则需要根据实际情况,把有关联的方法放在一起,具体情况可按实际灵活分配。
因为已经将class文件进行编译发布了,所以可以在“java2postgres\WebRoot\WEB-INF\classes\\lr\test”目录中找到对应的class文件,
复制这个文件,找到LR的目录:HP\LoadRunner\classes\\lr\test\ 如果没有文件夹,按相同的内容创建。
在LR脚本中进行引包操作:
将需要执行的java类以及方法,放在action中,可根据实际测试情况和所需要验证的内容,具体调试代码。
在这里可以像编写普通LR脚本一样,添加事务或 点等内容。
由于是通过JDBC对数据库进行访问,因此要在java user中加载jdbc驱动。
运行时设置中,增加jdbc驱动,需要注意的是java user使用的本地jdk,需要至多16版>>
1、全面保护Web应用,防止系统漏洞被恶意利用,帮助企业合规达标,满足行业标准,如PCI DSS (支付卡行业
数据安全标准)。
2、防止在线信用卡交易的数据窃取及欺诈行为。
3、防止因服务突然中断而给用户造成的经济损失,确保用户业务在安全底线之上稳定运行。
核心技术
梭子鱼WEB应用防火墙 梭子鱼WEB应用防火墙提供强大的双向扫描机制。对于HTTP请求,梭子鱼WEB应用防火墙提供URL、表单参数、报头及cookie等各种安全扫描,此外,还提供强大的应用层DDoS防护以及强制浏览和跨站请求伪造攻击防护。对于HTTP响应,梭子鱼WEB应用防火墙通过对响应报头、HTML内容进行过滤,确保敏感信息不被泄露。
梭子鱼WEB应用防火墙 提供XML防火墙功能,利用WSDL和XML schema的合规性检查,提供各种XML的安全防护机制,包括对XML DoS的攻击防护。
梭子鱼WEB应用防火墙 能够与用户的LDAP和RADIUS服务器整合,为网站提供用户的身份认证及访问授权,并通过内容路由、负载均衡、缓存和压缩机制对整个交互过程进行加速处理。此外,梭子鱼WEB应用防火墙提供灵活的部署模式,如桥(透明)模式、路由模式及旁路(单臂)模式,适应不同用户的不同网络环境
负载均衡机
梭子鱼服务器负载均衡机通过为多台服务器进行流量均衡、网络入侵防护和全面的失效备援能力,实现应用的高可用性和安全目的。梭子鱼不根据服务器台数和端口数进行收费,为寻求实现高扩展性,并对核心业务进行防护的数据中心提供了性价比极高的解决方案。
核心价值
1、在多台服务器间进行流量分配,提高应用业务的稳定性。
2、通过服务器冗余机制实现应用高可用性。
3、通过SSL卸载及自适应调度算法机制提升服务器处理性能。
高可用性与高可扩展性
据行业分析报告,目前只有不到20%的核心互联网应用实现了高可用性,这是因为高可用性所面临的巨大挑战包括:当服务器出现故障时还需保证业务的正常运行;当业务量增长时需要不断对数据中心进行扩容;还需要全面防护业务网络以避免系统漏洞的威胁。梭子鱼服务器负载均衡机使用完善的内部服务监控机制对真实服务器进行实时监控,确保服务器及其应用连续可用。一旦发生服务器或应用的中断,梭子鱼服务器负载均衡机能够自动在服务器群中启用失效备援以确保业务的持续可用性。服务器负载均衡机自身的故障风险可以通过部署2台主备服务器负载均衡机来解决。
对于高流量的应用环境,梭子鱼服务器负载均衡机通过几种调度算法,包括权重轮询和权重最小连接数,根据每台服务器的实时处理能力进行流量的均衡。对于需要会话保持的应用,梭子鱼服务器负载均衡机提供源IP会话保持以及7层的cookie会话保持功能。
核心技术
针对IP、Web和远程桌面等应用的特性,梭子鱼服务器负载均衡机使用服务检测和动态权重分配技术,为各种应用进行有针对性的流量均衡。
梭子鱼服务器负载均衡机通过4层负载均衡技术对应用进行4层负载均衡,并通过源IP会话保持机制为用户进行会话保持。服务检测机制通过TCP端口检测、Ping检测或SNMP检测等机制对应用进行健康检查。
对于Web应用,梭子鱼服务器负载均衡机使用反向代理机制实现7层cookie会话保持和SSL加速。通过向后台Web服务器发送HTTP或HTTPS请求,梭子鱼服务器负载均衡机能够对Web服务器进行实时的健康检查。
对于RDP(远程桌面)协议,梭子鱼服务器负载均衡机能够与Windows Terminal Session Directory 或Windows Terminal Services Session Broker 进行整合,允许用户重新建立或恢复之前断开的连接。
下一代防火墙(NG防火墙)
梭子鱼下一代防火墙是一个集成硬件设备和虚拟化软件的安全网关,全面防护企业网络架构、提升点对点连接流量、简化网络操作流程。除了强大的防火墙和***功能以外,产品还集成了一系列下一代防火墙的复杂技术,包括身份认证的7层应用控制、入侵检测、安全网关、垃圾邮件防护以及网络准入控制等。
梭子鱼下一代防火墙突出了智能点对点流量管理功能,大大优化了广域网的性能和功能。信息管理人员可以轻松管理基于应用的路由配置,根据多链路、多通道和不同的流量情况安排链路的优先顺序。产品支持多种链接接入方式,包括专用线路、XDSL、3G/UMTS无线移动网络及以太网等的链路接口。
不仅如此,除了上述领先的下一代防火墙的卓越性能外,产品还配备了业界领先的中央管理控制平台,提供更具弹性的***以及智能流量管理技术,保障用户在全面提升网络的同时缩减成本支出。
核心价值
1、在现有多媒体和其他Web20环境的应用下,全面保护网络。
2、减少大型分散式网络的管理成本。
3、通过中央管理平台管理数以千计的安全设备。
核心价值
1、在现有多媒体和其他Web20环境的应用下,全面保护网络。
2、减少大型分散式网络的管理成本。
3、通过中央管理平台管理数以千计的安全设备。
核心技术
配置梭子鱼下一代防火墙,你可以立即得到哪些好处?
提升网络安全 从安全角度上来说,企业可以通过将以往截然不同的安全功能例如安全网关、恶意代码防护、邮件安全、入侵检测和七层应用管理等集成在一个简单的平台上提升自己网络安全。
完全的应用程序识别 七层应用层控制使得信息管理人员在网络上可轻松识别大量(800以上)的协议和应用程序,包括BT下载、Skype和即时通讯工具,即使这些程序采用再先进的混淆技术、动态端口变更或是加密协议等亦于事无补。梭子鱼7层应用管理可以完全阻断上述应用程序的使用,也可以将他们的带宽限制到一定范围内。
企业网络优化 从全球网络管理角度来说,用户可以在中央管控平台的帮助下,通过更为有效的管理广域网链接和带宽接入,在为数以千计个节点提供服务的同时减少成本支出。最为先进的故障切换和带宽管理功能,确保企业在链路减少的时候亦保障核心业务流量畅通。
加速故障排查 在求助台和故障排除应用上,梭子鱼下一代防火墙为单个网络提供了前所未见的能见度,使得网络工程师可在强而有力的工具帮助下迅速诊断故障并恢复网络的正常运行。
摘要
我院在 年 月 日成功将HIS系统从win oracle 升级到两台IBM P A (操作系统AIX) oracle RAC组成的并行集群系统 随着一个新大楼的启用 客户端的电脑从 台增加到了 多台 集群系统出现了严重的性能问题 在业务高峰期经常死机 经过半个月左右的调试 终于彻底解决了性能问题 满足了医院医院业务发展的要求
关键词
ORACLE RAC (ORACLE Real Application Clusters): ORACLE 真正应用集群
新疆维吾尔自治区人民医院是新疆最大的三级甲等医院 病床 张以上 日门诊量 左右 为了满足医院发展的需要 自 年新HIS系统上线 医院的信息化得到了全面的提升 客户端工作站达到了 左右 其中HIS工作站近 台 随着客户数的增加 我院的系统表现出了扩展性不足的问题 这主要是WINDOWS 位操作系统 G内存限制造成 虽然我们经过参数修改 服务器内存升级为 G 但由于系统核心 位限制 当高峰期客户数达到 左右 前端工作站就不能继续连接 且一些大的统计分析不能执行 一些已连接用户也陆续不能使用 最后服务器上数据库DBA用户也不能连接 这时候只有重新启动服务器 才能解决问题 据了解全国一些大医院也面临我院同样的问题
在这种情况下 我院经过充分考证 借鉴电信和银行的小机 ORACLE RAC并行集群系统成功经验 经过尽一年的准备 成功采用两台IBM小机(IMB P A G内存 CPU) 实施了ORACLE RAC并行集群系统 从理论上根本上解决了扩展性不足的问题 并且预留了充分的扩展空间 这次升级跨度很大 操作系统平台从win ( 位)升级为IBM AIX ( 位) 数据库从 oracle ( 位)升级为oracle ( 位) 使用了oracle RAC集群系统 我院在 年 月 日进行了系统升级 由于准备的比较充分 系统升级比较顺利 碰见了几个小问题也很快的解决了 当时系统负载为客户端为 左右 但新系统的性能并不像我们想象的哪么理想 一些大的查询和业务性能出现了下降 系统整体性能出了下降 由于当时性能可以满足业务的要求 我们当时也没找到具体原因 到了 年 月 我院的新急救大楼投入了使用 HIS客户端从 台增加到了 台 这时性能出现了更进一步的下降 更为严重的是 高峰期 集群系统经常死机 这严重影响了医院正常工作 由于系统的错误很特别 我们没什么方法可以解决 我把每次系统的错误都传给了ORACLE 技术支持工程师 他们也分析不出原因 他们建议我们升级到 ORACLE 也许可以解决我们的问题 费了很大力气升完级 问题依旧 性能还是很差 由于新楼的科室不断增加 情况越来越坏 为了查清楚性能差的关键因素 我对数据库做了 小时的性能分析报告(oracle awr报告) 报告显示最耗资源的前SQL 语句(oracle top sql)均为:
SELECT OWNER SYNONYM_NAME FROM SYS ALL_SYNONYMS WHERE OWNER = PUBLIC AND SYNONYM_NAME = 表名称
这些语句应该是ORACLE 内部处理事件 SYS ALL_SYNONYMS是内部系统视图 表名称 是我们存放数据的表 我对比了ORACLE 的SYS ALL_SYNONYMS视图定义和我们现在ORACLE 的SYS ALL_SYNONYMS视图定义 发现SYS ALL_SYNONYMS定义发生了变化
CREATE OR REPLACE FORCE VIEW SYS ALL_SYNONYMS ( OWNER SYNONYM_NAME TABLE_OWNER TABLE_NAME DB_LINK ) AS
select u name o name s owner s name s node
from sys user$ u sys syn$ s sys obj$ o
where o obj# = s obj#
and o type# =
and o owner# = u user#
and (
o owner# in (USERENV( SCHEMAID ) / PUBLIC /) / user s private any public /
or / user has any privs on base object /
Exists
(select null from sys objauth$ ba sys obj$ bo sys user$ bu
where bu name = s owner
and bo name = s name
and bu user# = bo owner#
and ba obj# = bo obj#
and ( ba grantee# in (select kzsrorol from x$kzsro)
or ba grantor# = USERENV( SCHEMAID ) ))
or / user has system privileges /
exists (select null from v$enabledprivs
where priv_number in ( / LOCK ANY TABLE /
/ SELECT ANY TABLE /
/ INSERT ANY TABLE /
/ UPDATE ANY TABLE /
/ DELETE ANY TABLE /) ))
以上为ORACLE SYS ALL_SYNONYMS视图定义 ORACLE 在以上基础上增加了以下部分
union
select u name o name s owner s name s node
from sys user$ u sys syn$ s sys obj$ o sys _ALL_SYNONYMS_TREE st
where o obj# = s obj#
and o type# =
and o owner# = u user#
and o obj# = st syn_id / syn is in tree pointing to accessible base obj /
and s obj# = st syn_id / syn is in tree pointing to accessible base obj /
我使用 set autotrace traceonly分别在oracle 和oracle 对以下查询语句的执行计划进行了分析: Select from SYS ALL_SYNONYMS发现ORACLE 执行计划的效率比ORACLE 执行计划的效率差了几十倍 我们HIS系统的对所有表都建了同义词(SYNONYM) 所有表的访问都是通过同义词 所以可以确定 性能的严重下降是由于SYS ALL_SYNONYMS系统视图定义改变造成的
对此我们首先采用了采用了 移花接木 方法 增加私有同义词以跳过sys all_synonms的处理 CREATE OR REPLACE FORCE VIEW sys ALL_SYNONYMS_ as (select ……注ORACLE sys all_synonms定义) 在公共用户下创建了同义词CREATE SYNONYM puba ALL_SYNONYMS FOR SYS ALL_SYNONYMS_ 我们HIS系统所有的访问都是通过PUBA用户下建的同义词来玩成访问 ORACLE 数据库中用户下的同义词优先级要高于系统同义词 即PUBA ALL_SYSNONYMS的优先级要高于sys all_synonms完成此操作 系统应该启用ORACLE 下的sys all_synonms系统视图代替ORACLE 下的sys all_synonms系统视图 通过SQLPLUS 和PL/SQL等工具测试 均达到了我们目的 但我们HIS系统依然性能没有改变 从我做的性能报告分析 系统对同义词的处理没用采用我们建的私有同义词 我们分析 也许是我们HIS系统开发工具是POWERBUILD 它是一种专用的数据库开发工具 也许它可以绕过我们建的私用同义词 直接访问ORACLE 系统同义词
到此 可以采用的间接方法 已经没有了 我想直接修改ORACLE 中sys all_synonms视图定义为ORACLE 视图定义 即去掉新增加那部分语句 由于sys all_synonms是ORACLE 数据库内部系统视图 修改定义具有很大的风险 而且我们这是负载很高很重要的生产系统 我不敢冒然行事 我把自己自己处理经过和分析和ORACLE 支持工程师进行了沟通 并且咨询是否可以把ORACLE 中SYS ALL_SYNONYMS定义变成ORACLE SYS ALL_SYNONYMS的定义 由于SYS ALL_SYNONYMS是ORACLE 内部很重要系统视图 ORACLE 技术支持工程师也不清楚这样是否可行 他表示要与美国公司开发工程师咨询 最后 ORACLE 公司给出了明确的答复 系统视图改变是因为 如果对同义词再建同义词 ORACLE 有一个严重BUG 因此他们在ORACLE G对视图进行了修改 如果我们系统中没有使用对同义词再建同义词 我们可以修改视图 我们系统没有他们说的那种BUG 因此我们立即修改了视图 效果立竿见影 高峰期两台小机的负载从 %~ %下降到了 %~ % 所有的功能的性能都得到了显著的提升 困扰我们小机性能问题终于得到了完美的解决
lishixinzhi/Article/program/Oracle/201311/18849
0条评论