【计算机网络 - 基础问题】每日 3 题(六十)

✍个人博客:https://blog.csdn.net/Newin2020?type=blog

📣专栏地址:http://t.csdnimg.cn/fYaBd

📚专栏简介:在这个专栏中,我将会分享 C++ 面试中常见的面试题给大家~

❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪

📝推荐参考地址:https://www.xiaolincoding.com/(这个大佬的专栏非常有用!)

184. 如何提高服务器的 QPS?

由前面的公式:QPS(TPS)= 并发数/平均响应时间 可以看出,要提高 QPS,我们必须做 2 个方面努力:

(1)增加并发数

  1. 比如增加 tomcat 并发的线程数,开跟服务器性能匹配的线程数,可以更多满足服务请求。
  2. 增加数据库的连接数,预建立合适数量的 TCP 连接数。
  3. 后端服务尽量无状态话,可以更好支持横向扩容,满足更大流量要求。
  4. 调用链路上的各个系统和服务尽量不要单点,要从头到尾都是能力对等的,不能让其中某一点成为瓶颈。
  5. RPC 调用的尽量使用线程池,预先建立合适的连接数。

(2)减少平均响应时间

  1. 请求尽量越前结束,越好,这样压力就不要穿透到后面的系统上,可以在各个层上加上缓存。
  2. 流量消峰。放行适当的流量,处理不了的请求直接返回错误或者其他提示。和水坝道理很类似。
  3. 减少调用链。
  4. 优化程序。
  5. 减少网络开销,适当使用长连接。
  6. 优化数据库,建立索引。

185. 网络编程中设计并发服务器,使用多进程与多线程 ,请问有什么区别?

答案一:

1)进程:子进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复制品。

2)线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有 自己的栈空间,拥有独立的执行序列。

两者都可以提高程序的并发度,提高程序运行效率和响应时间。

线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反。同时,线程适合于 在 SMP 机器上运行,而进程则可以跨机器迁移。

答案二:

根本区别就一点:用多进程每个进程有自己的地址空间 (address space),线程则共享地址空间。所有其它区别都是由此而来的:

1)速度:线程产生的速度快,线程间的通讯快、切换快等,因为他们在同一个地址空间内。

2)资源利用率:线程的资源利用率比较好,也是因为他们在同一个地址空间内。

3)同步问题:线程使用公共变量/内存时需要使用同步机制,还是因为他们在同一个地址空间内。

相关推荐
猫天意14 小时前
【即插即用模块】AAAI2025 | 高频 + 空间感知!新 HS-FPN 让“极小目标”不再消失!SCI保二区争一区!彻底疯狂!!!
网络·人工智能·深度学习·学习·音视频
weixin_4209476414 小时前
php composer update 指定包的分支非tag
开发语言·php·composer
一水鉴天14 小时前
整体设计 定稿 之6 完整设计文档讨论及定稿 之4 整体设计数据库设计规范(含两个版本)
开发语言·人工智能·架构
草根站起来14 小时前
SSL证书根证书没有二级根证书、三级根证书、四级根证书,SSL证书参数诈骗被迫使用了套牌贴牌非原厂SSL和证书
网络·网络协议·ssl
XFF不秃头14 小时前
【力扣刷题笔记-在排序数组中查找元素的第一个和最后一个位置】
c++·笔记·算法·leetcode
派大鑫wink14 小时前
分享一些在Spring Boot中进行参数配置的最佳实践
java·spring boot·后端
想学习java初学者14 小时前
SpringBoot整合MQTT多租户(优化版)
java·spring boot·后端
正经教主14 小时前
【Trae+AI】和Trae学习搭建App_2.1:第3章·手搓后端基础框架Express
人工智能·后端·学习·express
Evand J14 小时前
【EKF定位滤波例程】三维空间(XYZ)速度与位置观测与滤波(使用扩展卡尔曼滤波EKF),状态量和观测量都是非线性的。附MATLAB例程下载链接
开发语言·matlab
自不量力的A同学14 小时前
VonaJS 5.0.242 实现了文件级别精确 HMR
笔记