← 返回部落格列表 Meta PE OA 2026 題型全拆解與備考技巧|Linux + Bash + 網路綜合戰
Meta

Meta PE OA 2026 題型全拆解與備考技巧|Linux + Bash + 網路綜合戰

2026-05-18

Meta Production Engineer(PE)崗位的 OA 風格獨特——不是 LeetCode 而是「實戰腳本 + 系統偵錯 + 網路追問」。本文不重複「PE Playbook」已經講過的流程,而是把 2026-Q1 起 17 位學員複盤的 OA 題型逐類拆開,給出程式範本和備考節奏。


一、Meta PE OA 概覽

維度 詳情
平台 HackerRank / Meta Codepair
時長 75 分鐘
題量 3 題(腳本 + 系統 + 偵錯)
推薦語言 Python 3 / Bash(建議兩個都會
評分 單題部分用例 + 通用程式品質分
onsite cutoff 學員觀察 2 全 AC + 1 半 AC 為安全線

關鍵觀察:PE OA 比 SDE OA簡單但更挑剔風格——一個 cat | grep | awk 風格的腳本能拿滿分,但寫得囉嗦的 Python 反而扣分。


二、3 題分布

Q1: 腳本類(Bash 或 Python)     →  20 分鐘  約 30%
Q2: 系統問答 + 小程式            →  25 分鐘  約 35%
Q3: 偵錯 / 故障排查              →  30 分鐘  約 35%
                                  --------
                                  75 分鐘

三、Q1 腳本類高頻考點

PE OA 的 Q1 通常考察「日誌解析 / 檔案批處理」。下面是 2026 出現 5 次以上的題型:

高頻真題:從 Nginx 日誌統計 Top N 錯誤源 IP

給定一個 access.log 檔案,每行格式:IP - - [timestamp] "METHOD path" status size。統計 status >= 400 的 IP,按出現次數降序輸出前 N 個,同 count 時按 IP 字典序

import re
from collections import Counter

LOG_LINE = re.compile(r'^(\S+) .*? "\S+ \S+" (\d{3}) ')

def top_error_ips(log_path, n):
    counter = Counter()
    with open(log_path, encoding="utf-8") as f:
        for line in f:
            m = LOG_LINE.match(line)
            if not m:
                continue
            ip, status = m.group(1), int(m.group(2))
            if status >= 400:
                counter[ip] += 1
    return sorted(counter.items(), key=lambda kv: (-kv[1], kv[0]))[:n]

時間複雜度:O(L + k log k),L 是日誌行數,k 是 distinct IP

Bash 等價版本

awk '$9 >= 400 {print $1}' access.log | sort | uniq -c | sort -k1 -rn -k2 | head -n "$1"

評分關鍵:能寫出 Bash 一行版本會讓面試官印象很深——PE 文化偏好 Unix 哲學。


四、Q2 系統問答 + 小程式

Q2 題面有 5-8 個小問題,混合概念問答 + 程式實作。常見組合:

高頻考點拆解

主題 常見追問 程式長度
fork / exec 子程序殭屍態、孤兒程序 20 行 Python
signal SIGTERM vs SIGKILL;trap 15 行 Bash/Python
permission chmod 4755 (setuid) 含義 概念為主
檔案描述子 stdin/stdout/stderr 重導向 10 行 Bash
cron 每週 1-5 凌晨 2:30 跑 單行

範例:監督子程序並優雅重啟

import os
import signal
import time

def run_with_supervisor(child_cmd, max_restart=3):
    restarts = 0
    while restarts <= max_restart:
        pid = os.fork()
        if pid == 0:
            os.execvp(child_cmd[0], child_cmd)
            os._exit(127)
        try:
            _, status = os.waitpid(pid, 0)
        except KeyboardInterrupt:
            os.kill(pid, signal.SIGTERM)
            time.sleep(2)
            os.kill(pid, signal.SIGKILL)
            break
        if os.WIFEXITED(status) and os.WEXITSTATUS(status) == 0:
            print("clean exit"); break
        restarts += 1
        print(f"restart #{restarts} after exit {status}")
        time.sleep(min(2 ** restarts, 60))
    else:
        print("too many restarts, giving up")

關鍵:寫出指數退避優雅 SIGTERM → SIGKILL 兩個細節,會從中等分跳到高分。


五、Q3 偵錯 / 故障排查(最難)

Q3 給你一段已經有 bug 的程式或一個故障場景日誌,要求定位問題並修復。常見包裝:

高頻場景

  1. 死鎖:兩個執行緒互相 wait
  2. 記憶體洩漏:Python global list 沒釋放
  3. socket 半關閉:服務端 close 後客戶端仍在寫
  4. DNS 解析慢:getaddrinfo 阻塞主執行緒
  5. 磁碟滿:日誌沒輪轉

範例:定位線上服務「間歇 504」

題面給你 5 段日誌,讓你找出:

學員高分範本

1. Triage(先穩止血)
   - 描述:流量切換到 standby,確保業務可用
   - 指令:kubectl scale deployment app --replicas=N
2. Diagnose(定位)
   - 看 metric:QPS / latency / error rate / CPU / memory / IO
   - 看 log:grep ERROR + 時間視窗
   - 看 trace:分散式追蹤關聯 request ID
3. Root cause
   - 一句話總結,可證偽
4. Fix
   - 短期修復 + 長期優化
5. Postmortem
   - 監控告警是否提前;可不可以加 health check

這套範本適用於 絕大多數 PE 偵錯題——背下來。


六、網路考點速查

知識點 必背
TCP 三次握手 SYN → SYN-ACK → ACK;狀態 LISTEN/SYN_SENT/SYN_RECV/ESTABLISHED
TCP 四次揮手 FIN → ACK → FIN → ACK;TIME_WAIT 2MSL
DNS recursive vs iterative;TTL;A / AAAA / CNAME / MX
HTTP/2 vs HTTP/3 multiplexing;HoL blocking;QUIC over UDP
TLS 1.3 1-RTT handshake;0-RTT replay 風險
防火牆 / iptables INPUT/OUTPUT/FORWARD chain;NAT

七、4 週備考路線

Week 1: Bash 基礎(grep/awk/sed/cut)+ 日誌解析 5 題
Week 2: Linux 系統呼叫 + signal + fork/exec
Week 3: 網路(TCP/DNS/HTTPS)+ tcpdump 實戰
Week 4: 限時模擬 3 套 + 故障排查範本背誦

強烈推薦資源


八、Pitfalls(學員高頻踩坑)

  1. Python 寫得太長:PE 題用 Bash 一行能寫就別用 50 行 Python
  2. 不讀 expected output:HackerRank 嚴格比對,多空格直接 0 分
  3. 忽視 stderr vs stdout 區分:Q1 的 awk/grep 題常考重導向
  4. Q3 上來就改程式:先用 1-2 分鐘描述 triage 步驟拿滿方法分
  5. 不寫 comments:PE 看重「思考路徑」——關鍵決策寫一行註解

九、常見問題 FAQ

Q1:PE OA 難度和 SDE OA 比怎麼樣?

A:演算法難度更低,但廣度更寬——Linux、網路、Bash、debugging 都要會。SDE 選手切換過來通常 Q3 卡得最厲害。

Q2:要會 SQL 嗎?

A:不必。PE OA 基本不出 SQL,但 onsite 偶爾會問「PostgreSQL slow query 怎麼排查」。

Q3:用 Bash 還是 Python?

A:Q1 優先 Bash(短小有力),Q2/Q3 用 Python(更容易寫狀態)。學員資料:能兩種切換的得分高 30%。

Q4:PE onsite 多少輪?

A:5 輪——1 OA-style coding、2 Linux/網路深挖、1 system design、1 BQ。

Q5:H1B sponsor 嗎?

A:。Meta PE 對 H1B 友好度比 SDE 略低(HC 緊),但仍是 sponsor 標配公司。


十、需要 Meta PE OA / VO 輔助?

PE OA 的考察面非常寬,刷 LeetCode 幾乎沒用——Bash 熟練度 + Linux 核心認知 + 故障排查範本才是關鍵。如果你正在準備:

我們提供:Meta PE 當週題、Linux / 網路深度講解、故障排查 mock、PE onsite 系統設計輔導。


聯絡方式

Email: [email protected]
Telegram: @OAVOProxy
微信: Coding0201


最後更新:2026-05-18 | 作者:oavoservice 面試組