面試 debug 情境題

前言 面試的時候被考到一題情境題覺得蠻有趣的,於是決定記錄下來。 面試過程 面試官:今天有一個網站是 3-tier 的架構(前端、後端、資料庫),某天你發現首頁 load 不出來,這時候你會怎麼做? 我:打開瀏覽器的 console 看 network 那邊的 request 狀態是怎樣。 面試官:你打開了,看到 request 沒有回傳 response,就卡著。 我:這樣看起來是後端掛了,先檢查後端的 log。 面試官:後端沒有 log,但是這個 controller 只有跟 db 撈資料,其他都沒有做。 我:那應該是後端跟 db 溝通的時候卡住了,這張表很大嗎? 面試官:大概 10 萬筆。 我:那應該還好,db 那台的 memory 跟 CPU 都是健康的嗎? 面試官:CPU 跟 memory 的 usage 都不超過 30%。 我:db 是 RDS 嗎? 面試官:是。 我:RDS 可以看每條 query 跑的狀況,這條 query 跑的狀況有異常嗎? 面試官:前幾次跑都沒問題,但是這次掛了。 我:… 面試官:那現在是什麼問題?你需要一點提示嗎? 我:好,我要提示。 面試官:你手動連接 db 發現連不進去了。 我:那應該是 connection pool 沒設定好,需要檢查一下 connection pool 的設定。 ...

July 6, 2021 · 1 min · Set Mao

Backup/Restore a dockerized PostgreSQL database

前言 記錄一下要怎麼在 docker 中對 PostgreSQL 備份/匯入資料 備份 PostgreSQL 在 docker 中備份 PostgreSQL 的指令如下: docker exec -t <container_name> pg_dumpall -c -U <user_name> > dump_`date +%d-%m-%Y"_%H_%M_%S`.sql 匯入 PostgreSQL 將 SQL 檔匯入 PostgreSQL 的指令如下: cat <your_dump>.sql | docker exec -i <container_name> psql -U <user_name> 參考資料 Backup/Restore a dockerized PostgreSQL database

June 29, 2020 · 1 min · Set Mao