tapioctl check 子命令¶
tapioctl check 是盤前 / 巡檢 / 故障時的第一站。
用法¶
子檢查:pfiles | config | disk | logs | tcpdirect | all
回傳碼:
0— 通過(含警告級別)1— 警告(可開盤但要處理)2— 失敗(不能開盤)
各子檢查¶
pfiles — 期交所產品檔¶
呼叫 libexec/tapio_check pfiles。
驗證 /opt/Tapio/data/taifex/<system_date>/ 下的產品檔:
- 必要檔案齊全(
P08、P09、P13、P14各 4 個副檔名.10/.11/.20/.21,共 16 個) P08(商品與時間流程群組定義檔)、P09(契約乘數)格式可解析(Tapio 內建 parser 試讀)
失敗對策:
- 缺檔 → 找交易室重跑 SFTP 下載
- 格式錯 → 找開發
config — Tapio.toml 可讀¶
呼叫 libexec/tapio_check config。
驗證 /opt/Tapio/etc/Tapio.toml:
- 檔案存在 + 可讀
- TOML 語法正確
- 所有必要欄位齊全
- 值合理(CPU 編號在範圍內、port 數字、IP 格式 等)
失敗對策:找最近改過 Tapio.toml 的人。
disk — 磁碟使用率¶
檢查目錄列表:
| 路徑 | required? |
|---|---|
/opt/Tapio/data/taifex/ |
required |
/opt/Tapio/log/ |
required |
/opt/Tapio/ |
required |
[livesync].watch_dir(讀自 Tapio.toml) |
optional |
對每個 mount point 看使用率:
- ≥ 80% → 警告
- ≥ 95% → 失敗
失敗對策:
- 立刻清舊 log(
find /opt/Tapio/log -maxdepth 1 -type d -mtime +30 -exec rm -rf {} +) - 或擴容磁碟
logs — daily log 是否在寫¶
找今天的 daily* log,看 mtime:
- 最後一行 < 10 分鐘前 → 通過
- 最後一行 ≥ 10 分鐘前 → 看時段:
- 盤中(日盤 / 夜盤)→ 失敗(Tapio 可能掛了)
- 盤前 / 日盤盤後 → 通過(正常無流量)
時段定義(TAIFEX):
| 時段 | 時間 |
|---|---|
| 日盤 | 08:45 – 13:45 |
| 夜盤 | 15:00 – 翌日 05:00 |
失敗對策:
- 盤中失敗 →
tapioctl status看 process 還在不在 - 不在 → 看
log/$today/stdout/tapio-core.log找死因 - 還在但沒寫 log → 可能 hang / deadlock,先
gdb attach拿 stack 再決定
tcpdirect — Onload / TCPDirect / NIC¶
檢查項目:
tcpdirectRPM 已裝onload或openonloadRPM 已裝/usr/lib64/libonload_zf.so存在libonload_zf.so不是 debug build(路徑不含*/zf/debug/*)libonload_zf.soowner 是tcpdirect-*RPMlsmod有onload或sfc_charkernel module
失敗對策:
- 缺 RPM →
dnf install tcpdirect onload - 缺 kmod → 裝
kmod-onload或onload_tool reload - debug build → 重 build TCPDirect release
all — 跑全部¶
依序跑 pfiles → config → disk → logs → tcpdirect。每個 section 印小結,最後印總結。
回傳碼為各檢查中的最差(max)。
範例輸出:
== pfiles ==
[通過] pfiles: 期交所產品檔齊全 / 格式正確
== config ==
[通過] config: Tapio.toml 可被 Tapio 讀取
== disk ==
- /opt/Tapio/data/taifex: 45% 使用中,剩 200 GiB [通過]
- /opt/Tapio/log: 82% 使用中,剩 30 GiB [警告]
- /opt/Tapio: 45% 使用中,剩 200 GiB [通過]
[警告] disk: 0 錯誤,1 警告
→ 磁碟使用率 ≥ 80%,排時間清理
== logs ==
[通過] logs: Tapio.121719.txt 活著(2 分鐘前才寫過,現在 日盤 12:23)
== tcpdirect ==
[通過] tcpdirect: RPM 已裝、/usr/lib64/libonload_zf.so 為 release build、kmod 已載入
---
總結: 有警告但可開盤,排時間處理上面提到的項目