1. 进程的状态,僵死进程
http://blog.csdn.net/nilxin/article/details/7437671
http://baike.baidu.com/link?url=6p9NTARJI51aL6dokyYcZbvydGMDjCTIO2NjCZc0mBtGKSo8ESRlTlcxXArE4f2483vgekGG0y7SLIQoI-UQWq9-UUZsQP8bFPHqVcNDdurmrgISw37MX3uxcS3mAPCw
2. 3次握手, 为什么是3次握手
http://blog.csdn.net/xumin330774233/article/details/14448715
3. 4次挥手, 为什么是4次挥手
http://blog.csdn.net/qq276592716/article/details/19762121
4. timewait,为什么需要timewait
首先,如果last ack如果丢失,主动关闭端需要重新发送ack包,因此主动关闭端不能在发送last ack后马上进入closed状态,而是进入timewait状态;
其次,保证老的重复分节已被丢弃,不会影响新的连接
5. 构造函数和析构函数可以是虚的么,为什么
http://www.cnblogs.com/lixiaohui-ambition/archive/2012/07/13/2589716.html
http://blog.csdn.net/chen825919148/article/details/8020550
6. 协程
7. select和epoll的区别
http://www.cnblogs.com/Anker/p/3265058.html
http://blog.csdn.net/shuxiaogd/article/details/50366039
8. 进程通信的方式, 区别和联系
http://www.cnblogs.com/mydomain/archive/2010/09/23/1833369.html
https://blog.csdn.net/piaoairy219/article/details/17333691
ZeroMQ是一种基于消息队列的多线程网络库
9. 线程同步的方式
互斥锁: 获取锁失败的线程进入阻塞状态;
读写锁: 读锁共享,写锁互斥, 在读远大于写的场景下面,可以增大并发,性能更佳;但是读写锁逻辑更复杂,一般情况性能不及互斥锁;
自旋锁:获取锁失败的线程,不释放cpu, 而是进入忙等状态,适用于锁被持有的时间很短的场景。自旋锁可以避免互斥锁导致的线程频繁切换成本,但是自旋锁冲突严重也会导致cpu sys飙高。
10. 网络模型
nginx高并发模型
11. tair是如何进行数据迁移的
mdb 2万 getcount, ldb 8000 getcount, 集群规模70台,
12. db优化,分表
https://blog.csdn.net/xlgen157387/article/details/53976153
https://zhidao.baidu.com/question/1242108282694993579.html
13. 业务的流量
4个集群, 每个集群100台机器, 96G内存,cpu 32core, 单机qps 500,应用70,网卡万兆, 性能测试5w qps, cpu90+%
信息流, 单机峰值qps:100, 单机房:200台机器; 性能测试800+ qps, cpu user:80+%,cpu sys:10+% , 原因:自旋锁冲突
14. 碰到的困难,怎么解决的
15. 描述快排
16. 最近在看的书
程序员自我修养
17. tcp怎么保证稳定性,udp和tcp的区别,使用场景
超时重传,保序,确认,校验,流量控制,去重
https://blog.csdn.net/m0_38121874/article/details/82914634
18. rehash,解决冲突的方法,多阶hash
19. 进程和线程的区别
20. 类的大小
https://blog.csdn.net/fengxinlinux/article/details/72836199
空类的大小
21. 惊群问题
https://www.cnblogs.com/Anker/p/7071849.html
锁
22. 滑动窗口原理
http://baijiahao.baidu.com/s?id=1581610570141881026&wfr=spider&for=pc
https://coolshell.cn/articles/11609.html
23. 算法:滑动窗口最大值
https://blog.csdn.net/u010429424/article/details/73692248
24. static_cast 和dynamic_cast
https://blog.csdn.net/qq_26849233/article/details/62218385
25. B-树和B+树, B+树用在什么场景
https://www.sohu.com/a/156886901_479559
26. vector的动态内存管理, dequeue
resize vs reserve
https://blog.csdn.net/linhao19841211_2/article/details/8154805
dequeue实现
https://blog.csdn.net/baidu_28312631/article/details/48000123
27. 优先队列的实现
大顶堆
28. 分布式一致性的方法
二阶段, paxos, bully
29. 训练集群
核数: 180*395 + 64*83 = 7.6w
内存: 256*(395+83) = 122T
任务数:2千/day
30. gpu训练
成本优势: 是纯cpu训练的2-4倍
模型:mlp(1024,512,128), 特征id 15亿, 样本5亿
cpu训练: 50ps(各15core)+ 50worker(各15core)=1500core = 23.5台腾讯云S5机器, 10w qps;线性扩展能力弱,集群规模增大后,性价比下降;
gpu异构训练: 1台v100机器+5台腾讯云S5=14.3台腾讯云S5机器,15.5w qps, batch 2048
耗时分布: 训练时间82ms(8*2048样本的训练时间),pass切换时间2817ms(1pass=1024batch,分摊到每个step为22ms), 分摊后,每个step的实际耗时是82+22=104ms。