# 7 附录
## 监控
服务器运行状态信息,框架内置Monitor控制器,如下方式访问:
```
[worker@newdev ~]$ curl http://127.0.0.1:8000/Monitor | jq .
{
"worker": { // worker进程信息
"worker0": { // 编号为0worker的进程
"pid": 1092, // 进程 ID
"coroutine": { // 当前正在执行的协程信息
"total": 0 // 正在执行的协程总数
},
"memory": { // 当进程的内存使用信息
"peak": "0.999M", // 内存峰值M单位
"usage": "0.951M", // 当前使用内存M单位
"peak_byte": 1047504, // 内存峰值B单位
"usage_byte": 996920 // 当前使用内存B单位
},
"request": { // 当前进程处理的请求信息
"worker_request_count": 3 // 当前进程处理的请求总数
},
"object_pool": { // 对象池
"PG\\MSF\\Controllers\\Monitor": 0, // 当前内存\PG\MSF\Controllers\Monitor对象总数
"PG\\MSF\\Helpers\\Context": 0,
"PG\\MSF\\Base\\Input": 0,
"PG\\MSF\\Base\\Output": 0
},
"dns_cache_http": { // DNS缓存
"127.0.0.1": [
"127.0.0.1",
1504774150,
1
],
"www.baidu.com": [
"14.215.177.38",
1504774202,
1
]
},
"exit": 0 // 进程异常退出次数
}
},
"tcp": {
"start_time": 1504753470, // 服务启动时间
"connection_num": 0, // 当前连接总数
"accept_count": 3, // 已接受连接总数
"close_count": 3, // 已关闭连接总数
"tasking_num": 0, // 当前正在排队的task数量
"request_count": 3 // 已处理请求总数
},
"running": {
"qps": 0, // 当前QPS
"last_qpm": 1, // 上一分钟处理请求数
"qpm": 0, // 当前分钟处理请求数
"concurrency": 0 // 当前并发数
},
"sys_cache": { // 共享内存信息
"memory_size": 1241513984,
"slots_memory_size": 167772160,
"values_memory_size": 1073741824,
"segment_size": 4194304,
"segment_num": 256,
"miss": 6607,
"hits": 9108,
"fails": 0,
"kicks": 0,
"recycles": 0,
"slots_size": 1048576,
"slots_used": 4
}
}
```
其中端口8000,根据实际情况调整为你的服务端口。
- 0 文档说明
- 1 为什么研发新框架
- 1.1 传统php-fpm工作模式的问题
- 1.2 压测数据对比
- 1.3 小结
- 2 微服务框架研发概览
- 2.1 通信框架技术选型
- 2.2 swoole
- 2.3 协程原理
- 2.4 异步、并发
- 2.5 小结
- 3 框架运行环境
- 3.1 环境变量
- 3.2 运行代码
- 3.3 docker
- 3.4 小结
- 4 框架结构
- 4.1 结构概述
- 4.2 控制器
- 4.3 模型
- 4.4 视图
- 4.5 同步任务
- 4.6 配置
- 4.7 路由
- 4.8 小结
- 5 框架组件
- 5.1 协程
- 5.2 类的加载
- 5.3 异步Http Client
- 5.4 请求上下文
- 5.5 连接池
- 5.6 对象池
- 5.7 RPC
- 5.8 公共库
- 5.9 RESTful
- 5.10 多语言
- 5.11 杂项
- 5.12 小结
- 6 常见问题
- 7 附录