腾讯音乐一面秒挂 2024-04-09
面到 20min 的时候就知道已经挂了,还是太菜了。。。
- 自我介绍
- Linux 服务器当中如何查看负载情况?通过什么指标进行查看?(扯了 top、free、ps、netstat)
- top 命令和 free 命令都可以查看内存,有什么区别?
- 怎么判断服务器内存是否够用?如何查看服务器性能瓶颈是否是内存?(不会)
- 如何判断内存是否是满的情况?通过什么指标判断内存的使用率?(不会)
- 操作系统内存不足的时候会发生什么?(答了内存替换)
- 是否看过内存替换的源码?有哪些方式?(答了 LRU、FIFO、LFU 等)
- 怎么判断操作系统有没有在内存替换?或者说怎么统计内存替换的频率?
- top 命令查看是多少个 CPU 核心?(不会,我扯到 CPU 的位数,用指针进行判断)
- 指针 64 位下多大?除了用指针进行判断,还有其他方法判断 CPU 的位数吗?
- 让写一下判断 32 位和 64 位的代码(这里我写了
int* p = new int(4);
) - 然后问 new int(4),这里的 4 作用是什么?(答了初始化为 4)
- 追问:如果没有写 4,初始化的值是多少?(我答初始化为 0,这里答错了,面试官让打印是否为 0,实际是一个垃圾值)
- 如果是结构体或类初始化情况会怎么样?(答了会调用构造函数,初始化为 0)
- 数据库为什么用 B+ 树?
- B+ 树叶子节点用双向链表有什么缺点?
- MySQL 和 OceanBase 的区别、优缺点?使用场景?
- 操作系统在进程调度的时候会做哪些事情?
- 进程上下文有哪些?
- gdb 是否用过?如何查看 coredump 文件堆栈?
- gdb 如何查看变量的值?如果查看的是地址呢?
- 程序发生 coredump,但是没有产生 coredump 文件,有哪些思路进行定位?(我扯了可能是内存泄漏,用 valgrind 查看,或者 perf 工具)
- 有什么信息可以查看这些进程具体发生了什么,内存不够还是什么?
- Linux 系统有没有什么提示这个进程到底发生了什么?
- C++ 的 static 的用法?(答了全局变量、局部变量、修饰成员变量和成员函数)
- public、private 和 protected 继承
- private 继承子类不可以访问父类,那 private 继承作用是什么?
- TCP 三次握手,客户端第三次发送的确认包丢失了发生什么?(我这里不知道怎么扯了客户端发送数据的时候,然后服务端会发送 RST 报文)
- 服务端发送第二个报文后连接的状态进入什么状态
- 然后开始追问上面我说的 RST 报文,发现好像答错了,说了客户端发送的数据报文会被丢失
- 三次握手和 accept 是什么关系?
- accept 做了哪些事情?(引导我最后答的是发送 SYN + ACK 报文,然后收到第三次 ACK 报文会将半连接移入到全连接队列中)
- 客户端发送的第一个 SYN 报文,服务器没有收到怎么办?
- 服务器收到第一个 SYN 报文,回复的 SYN + ACK 报文丢失了怎么办?(我答了客户端会重传 SYN 报文,服务端也会重传 SYN + ACK 报文)
- 假设客户端重传了 SYN 报文,服务端这边又收到重复的 SYN 报文怎么办?
- 反问
没有手撕,前面一堆 Linux 命令问完,差不多就知道挂了,实在是没怎么接触过 Linux 性能相关的分析,是我太菜了
#腾讯音乐工作体验#跌跌撞撞的找工作经历 文章被收录于专栏
主要记录一些个人的实习、秋招的面经等