大部分都是開放式問題轻专,看面試者回答的程度逐漸往下問蚓峦。
不問一些像語言特性徽级、語法糖那種可以死記硬背气破,不需要理解的問題,更多考察面試者的編程/工程 經驗和思維餐抢。
1. 系統(tǒng)
考察面試者對操作系統(tǒng)的了解程度现使,看基礎功。
1.1 內存
說一下進程里的內存旷痕,是組織碳锈、管理的,例如申請一塊內存欺抗,操作系統(tǒng)具體會做什么售碳? ★★★?
說一下邏輯內存地址,是怎么映射成物理內存地址绞呈?★★
1.2 調度
- 進程切換實際要做什么工作贸人?如果了解協(xié)程,那協(xié)程切換又是怎么搞的佃声?★★★
1.3 文件系統(tǒng)
- 操作系統(tǒng)從一個文件名艺智,讀取到具體的文件內容,實際干了什么事情圾亏?★★★★
2. 網(wǎng)絡
考察面試者對網(wǎng)絡常見問題的解決經驗
2.1 tcp
先說一下三次握手力惯,如果三次握手碗誉,client只做了第一次握手,就不管了父晶,會引發(fā)服務器什么問題哮缺,有什么思路解決? ★★★
time_wait是啥甲喝?為啥會有time_wait尝苇?怎么解決time_wait過多的問題?★★
2.2 http
- http在弱網(wǎng)絡具體會有哪些問題埠胖?怎么解決糠溜?★★★?
3. 算法與數(shù)據(jù)結構
考察面試者的編程思維
有100個視頻,100個用戶直撤,要統(tǒng)計每個視頻被播放的uv非竿,允許一定誤差,怎么做谋竖?★
有1000000000個視頻红柱, 100個用戶,要統(tǒng)計每個視頻被播放的uv蓖乘,允許一定誤差锤悄,怎么做?★★
有100個視頻嘉抒, 1000000000個用戶零聚,要統(tǒng)計每個視頻被播放的uv,允許一定誤差些侍,怎么做隶症?★★
有1000000000個視頻, 1000000000個用戶岗宣,要統(tǒng)計每個視頻被播放的uv沿腰,允許一定誤差,怎么做狈定?★★★★
從一堆人中颂龙,隨機挑人,例如挑出A纽什、B措嵌,便說A、B是一伙芦缰;C企巢、D是一伙;挑出B让蕾、C是一伙浪规,那么A或听、B、C笋婿、D都是一伙誉裆。然后隨機挑出兩個人,判斷他們是否一伙缸濒,要怎么做足丢?★★★★
LRU是怎么做的?存在哪些問題庇配,要怎么解決斩跌?★★★
4. 組件
考察面試者對于常用組件的掌握程度。
4.1 mysql
- mysql索引是怎么回事捞慌?★★
- mysql的鎖機制耀鸦?寫sql語句時,要怎么避免鎖的粒度過大啸澡?★★★★
- mysql的事務是怎么做的袖订?★★★★
4.2 redis
- redis如何做持久化?★★
- redis存在哪些性能問題锻霎?可以怎么解決著角?★★★
- redis的hash是怎么擴容的揪漩?★★
4.3 消息列隊
- 你熟悉的這個消息隊列具體工作原理是啥旋恼?存在哪些問題,怎么解決奄容?★★★?
- 容災 ★★★
4.4 lsm
- leveldb/rocksdb 工作原理冰更?讀寫流程?sst怎么合并昂勒?適用場景以及一些問題的優(yōu)化方法 ★★★?
- leveldb/rocksdb sst是怎么組織的蜀细,做了什么樣的優(yōu)化?★★★
5. 分布式
- raft/paxos 協(xié)議的原理戈盈?存在哪些問題奠衔?怎么優(yōu)化?★★★★★
- raft/paxos只是日志同步塘娶,那怎么基于raft/paxos 做高性能的強一致系統(tǒng)归斤?★★★★
- 如何擴縮容?★★★