面试时间:8月19日 拷打1小时面试官的麦克风真的听不清哇,百度hr好好,立马给通知面试结果与后续安排,说已通过等安排二面面试问题:1.自我介绍2.深挖了一下竞赛的项目,负责那些部分,实现了那些功能,用了那些方法3.项目中使用nginx和redis,聊聊在哪里提升了服务器性能 在不使用nginx和redis的情况下介绍了服务器之间的情况,聊了下nginx和redis的优点4.项目并发量的询问 介绍项目部署,项目运行依赖,项目压测,项目优化思考5.对问题3的追问,如何部署nginx和redis的 讲了下如何安装nginx和redis以及 修改对应的conf文件达到监听ip/port的效果6.了解coredump吗?本地有遇到coredump吗?如何解决的? gdb调试7.本地程序bin运行正常,部署到服务器上运行,如何排查服务器中出现的coredump问题? 这块答得一坨,确实没有这么操作过,一般都是纯本地/纯云端,回答查日志,看运行环境,或者用服务器的gdb进行调试,定位coredump8.针对问题7继续追问,如果在日志运行前 就已经发生coredump了怎么办?(不会) a)定位Core Dump文件: /var/lib/systemd/coredump/ b)将core dump文件从远程服务器下载到本地进行分析: scp user@remote:/path/to/corefile /local/path c)gdb调试: gdb /path/to/executable /path/to/corefile9.如何看服务器的运行环境 a)软件信息 内核版本 uname -r 操作系统版本 cat /etc/os-release b)硬件信息 lscpu c)环境变量 printenv10.使用gdb调试时,代码运行在主线程里运行,gdb如何进入子线程?(不会) ->启动gdb(gdb /path/to/executable) -> run ->查看当前线程(info threads)->切换线程(thread n) ->设置子线程断点(break filename.c:line_number)->查看子线程调用堆栈(backtrace) ->继续所有线程(continue)->继续仅当前线程(signal continue)11.算法(撕了一半,只给了10分钟,面试官要去开会) 输入:若干个关系对 输出:关系组合提示:不同的关系对,如果有相交,则合并成关系组. 范例:输入: [a, b], [c, d], [e, f], [b, e]输岀:[a,b,e,f ],[c,d]