×

多线程编程面试题 多线程面试题目

前端技术网 前端技术网 发表于2023-12-16 01:31:09 浏览1866 评论0

抢沙发发表评论

一、sql优化面试题及答案

1、Mysql查询是否区分大小写?

不区分SELECTVERSION(),CURRENT_DATE;SeLectversion(),current_date;seleCtvErSiOn(),current_DATE;所有这些例子都是一样的,Mysql不区分大小写。

多线程编程面试题 多线程面试题目

2、Mysql的技术特点是什么?

Mysql数据库软件是一个客户端或服务器系统,其中包括:支持各种客户端程序和库的多线程SQL服务器、不同的后端、广泛的应用程序编程接口和管理工具。

3、Heap表是什么?

HEAP表存在于内存中,用于临时高速存储。BLOB或TEXT字段是不允许的只能使用比较运算符=,<,>,=>,=<HEAP表不支持AUTO_INCREMENT索引不可为NULL

4、Mysql服务器默认端口是什么?

Mysql服务器的默认端口是3306。

多线程编程面试题 多线程面试题目

5、与Oracle相比,Mysql有什么优势?

Mysql是开源软件,随时可用,无需付费。Mysql是便携式的带有命令提示符的GUI。使用Mysql查询浏览器支持管理

6、如何区分FLOAT和DOUBLE?

以下是FLOAT和DOUBLE的区别:浮点数以8位精度存储在FLOAT中,并且有四个字节。浮点数存储在DOUBLE中,精度为18位,有八个字节。

7、区分CHAR_LENGTH和LENGTH?

CHAR_LENGTH是字符数,而LENGTH是字节数。Latin字符的这两个数据是相同的,但是对于Unicode和其他编码,它们是不同的。

8、请简洁描述Mysql中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?

SQL标准定义的四个隔离级别为:readuncommited:读到未提交数据readcommitted:脏读,不可重复读repeatableread:可重读serializable:串行事物

9、在Mysql中ENUM的用法是什么?

ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用。Createtablesize(nameENUM('Smail,‘Medium’,‘Large’);

10、如何定义REGEXP?

REGEXP是模式匹配,其中匹配模式在搜索值的任何位置。

二、jmeter面试常问的问题

Jmeter通过主机来控制各个压力机,并发大量用户,对服务器产生负载,从而实现性能测试。

性能测试怎么做的?

参考答案

性能需求分析,挑选了用户使用最频繁的功能或接口来做性能测试,比如车联网项目:注册接口,检测版本接口,下载接口,升级接口,确定性能指标,比如:响应时间小于1s,错误率小于等于0.01%,CPU和内存的使用率为70%左右,可稳定运行26小时。

提前准备好压力机和服务器,编写性能测试方案,搭建测试环境,准备测试数据。

采用Jmeter直接编写脚本或使用Java开发性能测试脚本。

设计性能测试场景,如单接口并发,多接口混合并发,稳定性测试等。

分析性能测试结果,如果有性能瓶颈,收集相关的日志给开发修改。

开发修改好后,回归性能测试,然后输出性能测试报告。

如何确定最大并发用户数?

参考答案

在寻找合适的并发用户数上,建议使用性能测试的“梯度模式”,逐渐增加并发用户数,这个时候压力也会越来越大,当TPS的增长率小于响应时间的增长率时,这就是性能的拐点,也就是最合理的并发用户数;

当TPS不再增长或者下降时,这个时候的压力就是最大的压力,所使用的并发用户数就是最大的并发用户数。如果此时的TPS不满足你的要求,那么就需要寻找瓶颈来优化

哪些功能需要做性能测试?

参考答案

选取操作频率非常高的功能。

关键程度非常高的功能,如登录。

资源占用非常严重的功能(如包含复杂逻辑的接口)。

性能测试在做的?

参考答案

一般我们是在测试环境做性能测试,根据性能测试结果,来评估生产环境资源配置情况(生产环境未部署的情况下),如有必要会对预发布环境做性能测试。

一般在哪个节点做性能测试

参考答案

测试环境最后一**能测试完成后,测试环境稳定,无重大bug的情况下,做性能测试

如何分析性能测试结果?

参考答案

查看聚合报告和服务器的资源使用图,检查响应时间,事务成功率,CPU,内存和IO使用率是否达到要求,如果出错率达到了总请求数的3%,我们会检查是什么原因导致的,修改好后,重新测试;

如果出现了性能瓶颈,比如响应时间,或者CPU使用率不达标,我们会从服务器上导出日志,分析是哪个地方导致响应时间过长,如果分析不出来,就叫上开发一起讨论,确定问题后,就提单给开发修复,修复好了就进行回归测试。

性能测试怎么判断网络瓶颈?

参考答案

1.确定本次压测链路上网络流量上限值是多少

在压测之前,提前确定本地压测的数据流向,即压测请求从压力机上发出后,经过了哪些环节,最终到达服务器上。响应数据经过哪些环节,又返回到压力机。

并且每个环节中的网络上限是多少,最终我们整个网络环路的流量上限,就取决于环路中最低的那个上限值(木桶原理)。网络请求数据首先是从压力机的网卡发出,一般的网卡都是千兆网卡,然后网络带宽也会有限制,比如是100Mb,可能还会经过一些网络设备,如路由器、交换机、防火墙等,这些设备也都有网络上限,假如都是10000Mb,最后到达目标服务器的网卡(千兆网卡)。

整体链路如果最高支持100Mb的数据流量,大约是100/8=12.5MB(1字节=8位)。如果在局域网内,几乎就不用考虑带宽和网络设备的问题了,所以局域网内网卡的上限就是整个链路的网络上限。

2.压测过程中,当前网络上的流量大小是多少

一般在目标服务器上,通过一些工具对网络进行监控,如nmon、dstat、sar、nload等,可以查看到实时的网络数据。按照上面的分析,假如通过监控Linux服务器,发现服务器的网卡流量已经达到12.5MB左右,那么就说明当前网络链路上的流量已经达到上限了。当前网络已经出现了瓶颈。

响应时间不达标

参考答案

响应时间不达标的话,我们会根据性能测试结果先检查看下是否是服务器带宽存在问题,如果带宽存在瓶颈,则会考虑增加带宽或者压缩传输数据,如果带宽没有问题的话,我们会从服务器上导出日志,开发一起讨论分析是哪个地方导致响应时间过长,确定问题后,就提单给开发修复,修复好了就进行回归测试。

CPU使用率不达标

参考答案

首先使用top命令,查看cpu进程占用情况,如

ps-ef|grepjava

查看占用cpu过高的pid是哪个服务,找到对应的服务后,反馈给开发解决

连接不上服务器

Q:程序在单用户场景下运行成功,多用户运行则失败,提示连不上服务器。

A:程序没有做多线程处理。

用户任务分配

Q:程序实现的功能是,随机给用户分配不同的任务,单用户运行时,能成功分配;多用户并发申请任务时,所有用户得到的任务都是一样的。

A:原因:程序存在线程同步的问题。

在做性能测试时,服务器返回http500

参考答案

运行的用户数过多,对服务器造成的压力过大,服务器无法响应。减小用户数或者场景持续时间,问题得到解决。

该做关联的地方没有去做关联。进行手工或者自动关联,问题得到解决。

录制时请求的页面、图片等,在回放的时候服务器找不到,若该页面无关紧要,则可以在脚本中注释掉,问题将会得到解决。例如:有验证码的情况下,尽管测试时已经屏蔽了,但是录制的时候提交了请求,但回放的时候不存在响应。

参数化时的取值有问题。可将参数化列表中的数值,拿到实际应用系统中进行测试,可排除问题。

更换了应用服务器(中间件的更换,如tomcat、websphere、jboss等),还是利用原先录制的脚本去运行,则很可能报HTTP500错误。因为各种应用服务器处理的机制不一样,所录制的脚本也不一样,解决办法只有重新录制脚本。

Windowsxp2与ISS组件不兼容,则有可能导致HTTP500错误。对ISS组件进行调整后问题解决。

系统开发程序写的有问题。例如有些指针问题没有处理好的,有空指针情况的存在。修改程序后问题解决。

启动方式。是多线程。还是多进程。一般多线程的容易出现500错误。

你们的性能测试需求哪里来的?

参考答案

客户提供性能测试需求。

如果客户未提供,由测试跟开发开会沟通解决。

如何实现200用户的并发

参考答案

Jmeter新建线程组,设置并发用户数为200。

什么情况下要做关联,关联是怎么做的?

参考答案

当下游接口的请求数据需要依赖上游接口请求返回的数据,就用关联。

有验证码或加密的功能,怎么做性能测试?

参考答案

将验证码或加密暂时屏蔽,完成性能测试后,再恢复。注意:屏蔽验证码是不会给性能测试的结果带来影响的。

使用一个万能的验证码。

你们性能测试做的是前台还是后台?

参考答案

我们做的是后台服务器的性能。

性能测试指标有哪些?

参考答案

平均事务响应时间,90%的事务响应时间,TPS,CPU、内存。

你们项目最佳的并发用户数是多少?

参考答案

我们当时做到1500个并发用户的时候,查询功能的响应时间超过了性能指标2秒多,原因是有几个表的索引建得不合理导致的,重新建索引后,问题就解决了。我们当时做到1500并发用户后,就没再继续增加用户量了。

分布式环境怎么搭建?

参考答案

分布式的环境搭建比较复杂,当时我也是根据自己的笔记来搭建的。

具体的步骤不记得了,大概是要先修改配置文件,将所有需要使用到的压力机的IP地址添加进来,然后在压力机只需要开启服务,在主机的电脑就可以控制远程启动了。

怎么监控服务器资源的

参考答案

我们使用的是Nmon工具来监控服务器资源的,它能够将linux上一段时间的资源以文档的形式保存下来。

Jmeter做性能测试的工作原理是什么?

参考答案

Jmeter通过主机来控制各个压力机,并发大量用户,对服务器产生负载,从而实现性能测试。

服务器的配置是怎样的

参考答案

配置:CentOS7,两台服务器,4核8G

三、大并发面试做法

多人同时面试,欲想取胜,就需显示出自己与众不同,但要严格遵守集体行动的规则,除了表现自我之外,要绝对避免和他人发生争执.在集体面试讨论发言中,谋职者的表演一定会五花八门.最出色的,面试者最喜欢的,是那种在有限时间内,有效发表自己见解的人;那种在局面混乱,大家抓不住重点之时能挺身而出,三言两语切中要害的人;特别是那种能将问题整理得清清楚楚,融合先前合理意见而领导他人意见的人.希望我的回答让你满意:)

文章分享到这里,希望我们关于多线程编程面试题和多线程面试题目的内容能够给您带来一些新的认识和思考。如果您还有其他问题,欢迎继续探索我们的网站或者与我们交流,我们将尽力为您提供满意的答案。