问题表现:
- 基于 Swift + Ubuntu + Vapor 的服务经常崩溃
解决办法:
- 调试:使用 gdb 分析 core dump,找到崩溃的代码地址。
- 原因:是 AES256CBC.swift 在调用 Linux 进程时,「偶尔」会导致 libswiftCore.so 崩溃。
- 办法:替换生成随机数的方式,最后使用的是:
|
|
涉及主题:
- gdb 调试
- ulimit、prlimit 更新 core dump 大小限制
- Swift + Ubuntu 下的随机数
- 分析 Linux 日志、日志分割
- 服务的生产环境、测试环境
- Nginx 简单防 DDOS,即限制总连接数、单位时间请求数