Does 'max_worker_processes' include background process from postmaster? I am wondering that max_worker_process include background process from postmaster? I'm going to upgrade Postgres from 9.3 to 9.6 and planning to use parallel query. 

-bash-4.2$ ps auxf | grep postgres | grep -v grep
root      3848  0.0  0.2  89560  2440 pts/0    S    02:02   0:00                      \_ su - postgres
postgres  3849  0.0  0.2  15728  2584 pts/0    S    02:02   0:00                          \_ -bash
postgres  6168  0.0  0.1  51016  1880 pts/0    R+   02:34   0:00                              \_ ps auxf
postgres   977  0.0  1.5 257956 15296 ?        Ss   01:48   0:00 /usr/pgsql-9.6/bin/postmaster -D /var/lib/pgsql/9.6/data/
postgres   983  0.0  0.1 112960  1576 ?        Ss   01:48   0:00  \_ postgres: logger process   
postgres   992  0.0  0.1 257956  1908 ?        Ss   01:48   0:00  \_ postgres: checkpointer process   
postgres   993  0.0  0.2 257956  2708 ?        Ss   01:48   0:00  \_ postgres: writer process   
postgres   994  0.0  0.1 257956  1684 ?        Ss   01:48   0:00  \_ postgres: wal writer process   
postgres   995  0.0  0.2 258408  2808 ?        Ss   01:48   0:00  \_ postgres: autovacuum launcher process   
postgres   996  0.0  0.1 112956  1900 ?        Ss   01:48   0:00  \_ postgres: stats collector process  


If max_process_worker include those bg process from postmaster, it means that when default settings, backgroup process worker for parallel query can start background processes up to 2?
I believe that they are two different processes and max_process_workers does not include the bg process. Both of them are set and defined separately. If you are talking about backgroud WOKER process (bgw) it is a complete different process and is not included in the max_process_workers by default as it has to be supplied in separate code by user and is surely maintained by postgres process itself.