后端与运维
Mores(圈主)服务端、数据库、Linux 和部署运维的经验分享
# 后端与运维查看端口被哪个进程占用
端口被占用、服务起不来时,可以这样查:
Linux:
ss -lntp | grep :3000macOS:
lsof -i :3000Windows:
netstat -ano | findstr :3000,再按最后一列的 PID 在任务管理器里找到进程。
# 后端与运维crontab 里的命令要写绝对路径
crontab 里的环境变量和登录后的终端不一样,PATH 很短。脚本里的命令写绝对路径,并把输出写进日志,出错了才有据可查:
0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
# 后端与运维用 EXPLAIN ANALYZE 查看查询的实际耗时
PostgreSQL 的
EXPLAIN (ANALYZE, BUFFERS)会真正执行一遍查询,列出每一步的实际耗时和读取的数据块数。分析 UPDATE、DELETE 语句时要放在事务里,看完结果执行 ROLLBACK,否则数据就真的改了。
# 后端与运维清理 Docker 之前先看 docker system df
docker system df会列出镜像、容器、卷和构建缓存各占了多少空间,看清楚再决定清理哪一项。docker image prune -a会删掉所有没被容器使用的镜像,回滚要用的旧版本也在其中。