在大部分Unix平台上,UXDB会修改由ps
报告的命令标题,这样个体服务器进程可以被标识。一个简单的显示如下:
$ ps auxww | grep ^uxdb uxdb 15551 0.0 0.1 57536 7132 pts/0 S 18:02 0:00 uxdb -i uxdb 15554 0.0 0.0 57536 1184 ? Ss 18:02 0:00 uxdb: writer process uxdb 15555 0.0 0.0 57536 916 ? Ss 18:02 0:00 uxdb: checkpointer process uxdb 15556 0.0 0.0 57536 916 ? Ss 18:02 0:00 uxdb: wal writer process uxdb 15557 0.0 0.0 58504 2244 ? Ss 18:02 0:00 uxdb: autovacuum launcher process uxdb 15558 0.0 0.0 17512 1068 ? Ss 18:02 0:00 uxdb: stats collector process uxdb 15582 0.0 0.0 58772 3080 ? Ss 18:04 0:00 uxdb: joe runbug 127.0.0.1 idle uxdb 15606 0.0 0.0 58772 3052 ? Ss 18:07 0:00 uxdb: tgl regression [local] SELECT waiting uxdb 15610 0.0 0.0 58772 3056 ? Ss 18:07 0:00 uxdb: tgl regression [local] idle in transaction
(ps
的调用方式随不同的平台而变,但是显示的细节都差不多。这个例子来自CentOS7操作系统。)列在这里的第一个进程是主服务器进程。为它显示的命令参数是当它被启动时使用的命令行参数。接下来的五个进程是由主进程自动启动的后台工作者进程(如果你已经设置系统为不启动统计收集器,“统计收集器”进程将不会出现;同样“自动清理发动”进程也可以被禁用)。剩余三个进程都是处理客户端连接的服务器进程。每个这种进程都会把它的命令行显示设置为这种形式:
uxdb:user
database
host
activity
在该客户端连接的生命期中,用户、数据库和主机(客户端)都保持不变,但是活动指示器会变化。活动可以是空闲
(等待客户端的命令)、事务空闲
(在一个BEGIN
块里等待客户端)或者一个命令类型名,例如SELECT
。同样,如果服务器进程正在等待一个其它会话持有的锁,会在上述信息后面附加 waiting
。在上面的例子中,澳门游戏平台注册网站可以推出:进程15606正在等待15610完成其事务,这样才能释放一些锁。进程15610必定是阻塞者,因为没有其他活动会话。在更复杂的情况下,有必要查看ux_locks 系统视图来决定谁阻塞了谁。
如果配置了cluster_name,则集群的名字
也将会显示在ps
的输出中:
$ uxsql -c 'SHOW cluster_name' cluster_name -------------- server1 (1 row) $ ps aux|grep server1 uxdb 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 uxdb: server1: writer process ...
如果你已经关闭了update_process_title,那么活动指示器将不会被更新,进程标题仅在新进程被启动的时候设置一次。 在某些平台上这样做可以为每个命令节省可观的开销,但在其它平台上却不明显。