腾讯新闻 二面

  1. 项目中技术有哪些收获
  2. hsnw
  3. 链路流程
  4. 用到什么有趣的数据结构
  5. qps过大怎么办?降级/限流
  6. remote rpc与本地调用相比的开销区别
  7. 怎么排查问题
  8. linux常用命令
  9. 查看cpu使用率 proc/stat
  10. 查看mem使用率 proc/meminfo
  11. 查看监听端口 netstat
  12. 查看进程cpu/mem使用率 top
  13. 查看线程堆栈 pstack
  14. coredump怎么排查
  15. gbd怎么排查
  16. std容器哪些是线程安全哪些是线程不安全的
  17. unordered_map底层/rehash时的性能
  18. 线程同步有哪些方法
  19. mutex和condition的用法/区别
  20. 信号量semaphore
  21. 内存池应用场景/底层实现
  22. redis性能/底层
  23. nginx/redis源码
全部评论
1. 网络通信 - **RPC**:最大的开销来自网络通信。RPC需要通过网络发送请求到远程服务器,并等待响应返回。这其中涉及数据的序列化(编码)和反序列化(解码),网络传输延迟,以及可能的网络带宽限制。 - **本地调用**:本地调用仅在内存中进行,无需网络传输,因此不存在网络延迟和序列化开销。 2. 数据序列化和反序列化 - **RPC**:RPC调用中,请求和响应数据通常需要序列化成一种网络传输兼容的格式(如JSON、XML或二进制格式),在接收端再反序列化。这个过程消耗CPU资源,并增加了调用时间。 - **本地调用**:本地调用不涉及数据的序列化和反序列化,数据直接以内存中的格式传递。 3. 错误处理和可靠性 - **RPC**:在RPC过程中,需要考虑多种错误情况,包括网络故障、远程服务器宕机、超时以及数据丢失等。错误处理逻辑更复杂,需要实施额外的容错措施如重试机制或异常处理。 - **本地调用**:本地调用的错误通常只涉及内存、资源访问违规或逻辑错误,处理相对简单。 4. 安全性 - **RPC**:RPC涉及网络传输,因此必须考虑数据加密、认证和授权等安全措施,增加了开销。 - **本地调用**:一般不需要通过网络传输数据,因此不涉及网络层面的安全问题。 5. 调用延迟和性能 - **RPC**:包含网络传输延迟,调用延迟相对较高。性能受限于网络条件和远程服务器的处理能力。 - **本地调用**:调用迅速,因为执行过程仅在本地内存和CPU上进行,调用延迟极低。
1 回复 分享
发布于 2024-06-27 14:48 河北
排查 `coredump` 的一般步骤通常包括: 1. **确保系统配置允许生成coredump**: 由 `ulimit`(用户级别的限制)和 `/proc/sys/kernel/core_pattern`(系统级别的设置)控制。 2. **定位coredump文件**: 当程序崩溃生成coredump时,文件通常保存在程序崩溃时的当前目录,或者根据核心模式(`core_pattern`)设置保存在指定的位置。 3. **使用gdb排查**: gdb <executable-path> <core-file-path> 其中 `<executable-path>` 是导致崩溃的程序的路径,`<core-file-path>` 是coredump文件的路径。 4. **分析崩溃信息**: 在gdb内,通过以下命令查看崩溃时的信息: - `bt`:打印崩溃时的堆栈跟踪。 - `info registers`:查看当前所有寄存器的值。 - `list`:查看源码(若有调试信息并且gdb能够找到源文件)。 - `thread apply all bt`:打印所有线程的堆栈跟踪。 - `frame`:选择堆栈帧来查看或操作。 使用这些命令可以帮助你定位到导致崩溃的代码位置,并进一步分析可能的原因。 `coredump` 文件通常很大,因为它们包含了进程的整个内存映像。 </core-file-path></executable-path></core-file-path></executable-path>
1 回复 分享
发布于 2024-05-13 22:50 北京
你腾讯新闻是做什么的,我上周刚面完
点赞 回复 分享
发布于 2024-05-14 13:42 四川
netstat -tulnp | grep LISTEN
点赞 回复 分享
发布于 2024-05-13 22:33 北京

相关推荐

05-09 13:22
门头沟学院 Java
点赞 评论 收藏
分享
评论
2
9
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务