南大通用GBase8s 数据库网络监控及调整方法
监控8s 的请求连接的情况,通过比较接受和拒绝的数量,查看网络缓冲区的大小来判断当前网路是否瓶颈,并进行调优。主要使用以下监控命令:
1) onstat -g ntd 监控请求拒绝和接受的情况。如果有大量的拒绝,可能是用户表溢出( 查看 onstat -p 中 ovuserthread) 或者网路连接超时 timeout; 此时可设置 NETTYPE ( connection_type , poll_threads , c_per_t , vp_clas s ) 增大网络连接数。
2) onstat -g ntu 监控TCP/IP 连接的缓冲区个数和大小,这将会影响内存和 CPU 利用率。调整相关参数,这样就不需要将请求分解为多个消息从而提高了 CPU 利用率。
l IFX_NETBUF_PVTPOOL_SIZE :指定每个会话的缓冲区个数,缺省大小为 1 个;
l IFX_NETBUF_SIZE :指定缓冲池中每个网络缓冲区的大小,缺省值为 4KB 。如果知道客户机发送的信息包大于 4KB ,那么增大此变量值。最大 64KB ,最小 512bytes ; sqlhosts 文件中 b (客户机缓冲区大小)值通常应与IFX_NETBUF_SIZE 值匹配。
3) onstat -g cpu 监控poll 监听线程运行情况
4) onstat -g afr global |grep net 监控网络缓冲区大小
命令详解如下:
|
命令 |
输出字段 |
描述 |
|
onstat -g ntd |
Accepted |
接受的次数 |
|
Rejected |
拒绝的次数 |
|
命令 |
输出字段 |
描述 |
|
onstat -g ntu |
q-pvt |
该会话的专用池中可用缓冲区的当前数和最大数 |
|
q-exceeds current/max |
超出可用缓冲区阈值的次数 若 current 超出 max ,考虑启用 I FX_NETBUF_PVTPOOL_SIZE /IFX_NETBUF_SIZE 环境变量和 sqlhosts 中 b 选项 ( 客户端缓冲区大小 ) 。 | |
|
reads/writes |
sqlexec 线程读写的情况 |
|
命令 |
输出字段 |
描述 |
|
onstat -g cpu |
soctcppoll |
查看相关的 poll 监听线程是否启动 |
|
onstat -g afr global |grep net |
size |
网络缓冲区大小,以字节为单位 |