nginx-rtmp-module icon indicating copy to clipboard operation
nginx-rtmp-module copied to clipboard

Multi-worker streaming Issues

Open omar-haris opened this issue 8 years ago • 12 comments

I have Issues when enable Multi-worker streaming

my config

user  fstv;

worker_processes  4;

events {
    worker_connections  1024;
}

rtmp_auto_push on;
rtmp_auto_push_reconnect 1s;
rtmp_socket_dir /var/sock;

rtmp {

     server{

        listen 1935;

        application live {

             live on;

        }

     }

}

http {

    include       mime.types;
    default_type  application/octet-stream;
    ssl_session_cache    shared:SSL:10m;


    sendfile        on;

    keepalive_timeout  65;

    server {

        listen       80;

        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

}

error log

2016/05/31 21:43:45 [alert] 14915#14915: worker process 14925 exited on signal 11
2016/05/31 21:43:45 [alert] 14915#14915: worker process 14931 exited on signal 11
2016/05/31 21:43:45 [alert] 14915#14915: worker process 14932 exited on signal 11
2016/05/31 21:43:45 [alert] 14915#14915: worker process 14930 exited on signal 11
2016/05/31 21:43:46 [alert] 14915#14915: worker process 14933 exited on signal 11
2016/05/31 21:43:46 [alert] 14915#14915: worker process 14935 exited on signal 11
2016/05/31 21:43:46 [alert] 14915#14915: worker process 14936 exited on signal 11
2016/05/31 21:43:46 [alert] 14915#14915: worker process 14934 exited on signal 11
2016/05/31 21:43:46 [alert] 14915#14915: worker process 14938 exited on signal 11
2016/05/31 21:43:46 [alert] 14915#14915: worker process 14937 exited on signal 11
2016/05/31 21:43:47 [alert] 14915#14915: worker process 14940 exited on signal 11
2016/05/31 21:43:47 [alert] 14915#14915: worker process 14939 exited on signal 11
2016/05/31 21:43:47 [alert] 14915#14915: worker process 14943 exited on signal 11
2016/05/31 21:43:47 [alert] 14915#14915: worker process 14941 exited on signal 11
2016/05/31 21:43:47 [alert] 14915#14915: worker process 14942 exited on signal 11
2016/05/31 21:43:47 [alert] 14915#14915: worker process 14945 exited on signal 11
2016/05/31 21:43:48 [alert] 14915#14915: worker process 14944 exited on signal 11
2016/05/31 21:43:48 [alert] 14915#14915: worker process 14946 exited on signal 11
2016/05/31 21:43:48 [alert] 14915#14915: worker process 14948 exited on signal 11
2016/05/31 21:43:48 [alert] 14915#14915: worker process 14949 exited on signal 11
2016/05/31 21:43:48 [alert] 14915#14915: worker process 14947 exited on signal 11
2016/05/31 21:43:48 [alert] 14915#14915: worker process 14951 exited on signal 11
2016/05/31 21:43:48 [alert] 14915#14915: worker process 14950 exited on signal 11
2016/05/31 21:43:49 [alert] 14915#14915: worker process 14952 exited on signal 11
2016/05/31 21:43:49 [alert] 14915#14915: worker process 14953 exited on signal 11
2016/05/31 21:43:49 [alert] 14915#14915: worker process 14954 exited on signal 11
2016/05/31 21:43:49 [alert] 14915#14915: worker process 14956 exited on signal 11
2016/05/31 21:43:49 [alert] 14915#14915: worker process 14958 exited on signal 11
2016/05/31 21:43:49 [alert] 14915#14915: worker process 14955 exited on signal 11
2016/05/31 21:43:50 [alert] 14915#14915: worker process 14957 exited on signal 11
2016/05/31 21:43:50 [alert] 14915#14915: worker process 14959 exited on signal 11
2016/05/31 21:43:50 [alert] 14915#14915: worker process 14960 exited on signal 11
2016/05/31 21:43:50 [alert] 14915#14915: worker process 14962 exited on signal 11
2016/05/31 21:43:50 [alert] 14915#14915: worker process 14961 exited on signal 11
2016/05/31 21:43:50 [alert] 14915#14915: worker process 14964 exited on signal 11
2016/05/31 21:43:51 [alert] 14915#14915: worker process 14963 exited on signal 11
2016/05/31 21:43:51 [alert] 14915#14915: worker process 14965 exited on signal 11
2016/05/31 21:43:51 [alert] 14915#14915: worker process 14966 exited on signal 11
2016/05/31 21:43:51 [alert] 14915#14915: worker process 14967 exited on signal 11
2016/05/31 21:43:51 [alert] 14915#14915: worker process 14969 exited on signal 11
2016/05/31 21:43:51 [alert] 14915#14915: worker process 14971 exited on signal 11
2016/05/31 21:43:51 [alert] 14915#14915: worker process 14968 exited on signal 11
2016/05/31 21:43:52 [alert] 14915#14915: worker process 14973 exited on signal 11
2016/05/31 21:43:52 [alert] 14915#14915: worker process 14972 exited on signal 11
2016/05/31 21:43:52 [alert] 14915#14915: worker process 14975 exited on signal 11
2016/05/31 21:43:52 [alert] 14915#14915: worker process 14970 exited on signal 11
2016/05/31 21:43:52 [alert] 14915#14915: worker process 14976 exited on signal 11
2016/05/31 21:43:52 [alert] 14915#14915: worker process 14977 exited on signal 11
2016/05/31 21:43:53 [alert] 14915#14915: worker process 14974 exited on signal 11
2016/05/31 21:43:53 [alert] 14915#14915: worker process 14978 exited on signal 11
2016/05/31 21:43:53 [alert] 14915#14915: worker process 14980 exited on signal 11
2016/05/31 21:43:53 [alert] 14915#14915: worker process 14981 exited on signal 11
2016/05/31 21:43:53 [alert] 14915#14915: worker process 14979 exited on signal 11
2016/05/31 21:43:53 [alert] 14915#14915: worker process 14982 exited on signal 11
2016/05/31 21:43:54 [alert] 14915#14915: worker process 14983 exited on signal 11
2016/05/31 21:43:54 [alert] 14915#14915: worker process 14985 exited on signal 11
2016/05/31 21:43:54 [alert] 14915#14915: worker process 14984 exited on signal 11
2016/05/31 21:43:54 [alert] 14915#14915: worker process 14988 exited on signal 11
2016/05/31 21:43:54 [alert] 14915#14915: worker process 14986 exited on signal 11
2016/05/31 21:43:54 [alert] 14915#14915: worker process 14987 exited on signal 11
2016/05/31 21:43:54 [alert] 14915#14915: worker process 14990 exited on signal 11
2016/05/31 21:43:55 [alert] 14915#14915: worker process 14989 exited on signal 11
2016/05/31 21:43:55 [alert] 14915#14915: worker process 14993 exited on signal 11
2016/05/31 21:43:55 [alert] 14915#14915: worker process 14992 exited on signal 11
2016/05/31 21:43:55 [alert] 14915#14915: worker process 14991 exited on signal 11
2016/05/31 21:43:55 [alert] 14915#14915: worker process 14995 exited on signal 11

omar-haris avatar May 31 '16 18:05 omar-haris

Multiworkers is now abandoned functionality.

https://github.com/sergey-dryabzhinsky/nginx-rtmp-module/issues/132

misiek08 avatar May 31 '16 19:05 misiek08

@misiek08 do you have any idea to solve this issue ?

omar-haris avatar May 31 '16 19:05 omar-haris

Disable multiple workers and auto_push.

If you really need so many viewers handled then run multiple nginx processes with pull directives or set them like normal instance and setup push on origin process.

misiek08 avatar May 31 '16 19:05 misiek08

@misiek08 thanks for idea. Do you have an example ?

omar-haris avatar May 31 '16 20:05 omar-haris

This information should be updated in Readme that it's ill-advised to use multiple workers and auto_push feature (Currently it says in the Readme that RTMP module supports this and points out how to enable it).

karlisk avatar Jun 12 '16 12:06 karlisk

@karlisk +1

omar-haris avatar Jun 12 '16 12:06 omar-haris

In my case nginx-rtmp used only for rtmp termination. Clients publish flv, nginx makes dash and serve fragments. No rtmp plays involved. No rtmp pulls. Can I use multiple workers somehow?

skykohai avatar Jun 20 '16 09:06 skykohai

You can start two nginx services - one for incoming rtmp, second for serving http-dash. First need to be builded with nginx-rtmp module (or load it) and one worker, second - just light http build with mp4/flv modules and multiple workers. Each must read from different config dirs like /etc/nginx, /etc/nginx-rtmp

sergey-dryabzhinsky avatar Jun 20 '16 10:06 sergey-dryabzhinsky

This is obvious solution, but config and datadirs hell isn't so good. I used config with multiple workers for weeks (just forgot) without any faults. Maybe it's option for my use case?

skykohai avatar Jun 20 '16 11:06 skykohai

it should work in your case. The biggest problem when someone try playing rtmp from another worker than the one where publisher is. In your case players connect via http and this part works without any problem with multiple workers. Just try for a while and if it will work then it's safe. I don't think there were changes that break multiworker publishers.

W dniu poniedziałek, 20 czerwca 2016 skykohai [email protected] napisał(a):

This is obvious solution, but config and datadirs hell isn't so good. I used config with multiple workers for weeks (just forgot) without any faults. Maybe it's option for my use case?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/sergey-dryabzhinsky/nginx-rtmp-module/issues/142#issuecomment-227119140, or mute the thread https://github.com/notifications/unsubscribe/AAbp9oYerGQz0btnBnS91V5Comuwq6BTks5qNnu6gaJpZM4Iq1x2 .

misiek08 avatar Jun 20 '16 13:06 misiek08

It worked just fine. I worry about dash files cleanups. What if two or more publishers will be connected to different workers? Can one worker delete dash files of another?

skykohai avatar Jun 20 '16 13:06 skykohai

They will need to delete only own files and IIRC worker cleans up only closed stream files, so won't touch other.

W dniu poniedziałek, 20 czerwca 2016 skykohai [email protected] napisał(a):

It worked just fine. I worry about dash files cleanups. What if two or more publishers will be connected to different workers? Can one worker delete dash files of another?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/sergey-dryabzhinsky/nginx-rtmp-module/issues/142#issuecomment-227140915, or mute the thread https://github.com/notifications/unsubscribe/AAbp9hsalQDgMixDH2bGrXUaax6uzHTHks5qNpS2gaJpZM4Iq1x2 .

misiek08 avatar Jun 20 '16 13:06 misiek08