*Hi all,*
*I'm sorry its a bit long. I know you all are busy at ats summit. But please read. We are created a caching solution for our iptv network using ats(Parent-child). It is working. But videos streams stutter a lot when I play using shaka player in chrome browser. Like videos get paused in every 2-3s. The configuration is given below. Please help me find the reason. Also please suggest how we can make this solution better(is something netter than hierarchy mod for this requirement). We have a nationwide mpls network and we are starting operations in 4 cities. These 4 cities are connected with mpls vpn. Our video processing headend in one city. 1. Origin: (172.16.100.13)In headed we have origin server(which a video packager/encrypted. Similar to encoders).2. Primary Parent Cache “A” (172.16.0.40)Which is connected to origin in reverse proxy mode. 3. Secondary Parent Cache “B” (172.16.16.10)Whose parent is “A” and child is “C”4. Child cache “C” (172.16.0.42)Whose parent is “B”When client device play the video, request will come to “C” and it gets the content from parents. The server “C” will be in our partner network’s premises so I am doing benchmarking for these.The issue is, when I play more streams from the “C” videos stutter. Configuration is given below.Origin: 172.16.100.13Main Parent (A) 172.16.0.40 (If not in cache, get it from Origin)cache.configurl_regex=.* revalidate=10mstorage.configvar/trafficserver 25000Mremap.configmap http://encoder.domain.com/ <http://encoder.domain.com/> http://172.16.100.13/ <http://172.16.100.13/> @plugin=/opt/ats/libexec/trafficserver/regex_remap.so @pparam=/tmp/regex.config @pparam=no-query-stringrecords.configCONFIG proxy.config.http.server_ports STRING 80CONFIG proxy.config.http.cache.http INT 1CONFIG proxy.config.http.cache.required_headers INT 0CONFIG proxy.config.cache.ram_cache.size INT 536870912CONFIG proxy.config.cache.ram_cache_cutoff INT 10485760CONFIG proxy.config.cache.limits.http.max_alts INT 5CONFIG proxy.config.cache.max_doc_size INT 0CONFIG proxy.config.cache.min_average_object_size INT 8000CONFIG proxy.config.url_remap.remap_required INT 0CONFIG proxy.config.url_remap.pristine_host_hdr INT 1CONFIG proxy.config.reverse_proxy.enabled INT 1CONFIG proxy.config.url_remap.remap_required INT 0CONFIG proxy.config.url_remap.pristine_host_hdr INT 1CONFIG proxy.config.reverse_proxy.enabled INT 1CONFIG proxy.config.diags.debug.enabled INT 1CONFIG proxy.config.diags.debug.tags STRING http.*|dns.*CONFIG proxy.config.cache.enable_read_while_writer INT 1CONFIG proxy.config.http.background_fill_active_timeout INT 0CONFIG proxy.config.http.background_fill_completed_threshold FLOAT 0.000000CONFIG proxy.config.cache.max_doc_size INT 0CONFIG proxy.config.cache.read_while_writer.max_retries INT 10CONFIG proxy.config.cache.read_while_writer_retry.delay INT 50CONFIG proxy.config.cache.control.filename STRING cache.configParent (B) 172.16.16.10 (If not in cache get it from “A”)storage.configvar/trafficserver 25000Mparent.configdest_domain=encoder.domain.com <http://encoder.domain.com> method=get parent="172.16.0.40:80 <http://172.16.0.40:80>" go_direct=falserecords.configCONFIG proxy.config.http.server_ports STRING 80CONFIG proxy.config.http.parent_proxy_routing_enable INT 1CONFIG proxy.config.http.parent_proxy.retry_time INT 300CONFIG proxy.config.http.parent_proxy.connect_attempts_timeout INT 30CONFIG proxy.config.http.forward.proxy_auth_to_parent INT 0CONFIG proxy.config.http.uncacheable_requests_bypass_parent INT 0CONFIG proxy.config.http.cache.http INT 1CONFIG proxy.config.http.cache.ignore_client_cc_max_age INT 1CONFIG proxy.config.http.normalize_ae_gzip INT 1CONFIG proxy.config.http.cache.cache_responses_to_cookies INT 1CONFIG proxy.config.http.cache.cache_urls_that_look_dynamic INT 1CONFIG proxy.config.http.cache.when_to_revalidate INT 0CONFIG proxy.config.http.cache.required_headers INT 0CONFIG proxy.config.cache.ram_cache.size INT 5368709120CONFIG proxy.config.cache.ram_cache_cutoff INT 4194304CONFIG proxy.config.cache.limits.http.max_alts INT 5CONFIG proxy.config.cache.max_doc_size INT 0CONFIG proxy.config.cache.min_average_object_size INT 8000CONFIG proxy.config.url_remap.remap_required INT 0CONFIG proxy.config.url_remap.pristine_host_hdr INT 0CONFIG proxy.config.reverse_proxy.enabled INT 0CONFIG proxy.config.diags.debug.enabled INT 1CONFIG proxy.config.diags.debug.tags STRING http.*|dns.*|regexCONFIG proxy.config.cache.enable_read_while_writer INT 1CONFIG proxy.config.http.background_fill_active_timeout INT 0CONFIG proxy.config.http.background_fill_completed_threshold FLOAT 0.000000CONFIG proxy.config.cache.max_doc_size INT 0CONFIG proxy.config.cache.read_while_writer.max_retries INT 10CONFIG proxy.config.cache.read_while_writer_retry.delay INT 50CONFIG proxy.config.cache.control.filename STRING cache.configremap.configmap http://encoder.domain.com <http://encoder.domain.com> http://encoder.domain.com <http://encoder.domain.com> @plugin=/opt/ats/libexec/trafficserver/regex_remap.so @pparam=/tmp/regex.config @pparam=no-query-string[root@mumbai trafficserver]# cat /tmp/regex.config #^/(.*)$ http://172.16.100.7/$1 <http://172.16.100.7/$1>^/(.*)$ http://encoder.domain.com/$1 <http://encoder.domain.com/$1>Child (“C”) : 172.16.0.42 (if not in cache, get from “B”)cache.configurl_regex=.* revalidate=10mstorage.configvar/trafficserver 26000Mrecords.configCONFIG proxy.config.http.server_ports STRING 80CONFIG proxy.config.http.parent_proxy_routing_enable INT 1CONFIG proxy.config.http.parent_proxy.retry_time INT 300CONFIG proxy.config.http.parent_proxy.connect_attempts_timeout INT 30CONFIG proxy.config.http.forward.proxy_auth_to_parent INT 0CONFIG proxy.config.http.uncacheable_requests_bypass_parent INT 0CONFIG proxy.config.http.cache.http INT 1CONFIG proxy.config.http.cache.ignore_client_cc_max_age INT 1CONFIG proxy.config.http.normalize_ae_gzip INT 1CONFIG proxy.config.http.cache.cache_responses_to_cookies INT 1CONFIG proxy.config.http.cache.cache_urls_that_look_dynamic INT 1CONFIG proxy.config.http.cache.when_to_revalidate INT 0CONFIG proxy.config.http.cache.required_headers INT 0CONFIG proxy.config.cache.ram_cache.size INT 536870912CONFIG proxy.config.cache.ram_cache_cutoff INT 10485760CONFIG proxy.config.cache.limits.http.max_alts INT 5CONFIG proxy.config.cache.max_doc_size INT 0CONFIG proxy.config.cache.min_average_object_size INT 8000CONFIG proxy.config.url_remap.remap_required INT 0CONFIG proxy.config.url_remap.pristine_host_hdr INT 1CONFIG proxy.config.reverse_proxy.enabled INT 0CONFIG proxy.config.cache.enable_read_while_writer INT 1CONFIG proxy.config.http.background_fill_active_timeout INT 0CONFIG proxy.config.http.background_fill_completed_threshold FLOAT 0.000000CONFIG proxy.config.cache.max_doc_size INT 0CONFIG proxy.config.cache.read_while_writer.max_retries INT 10CONFIG proxy.config.cache.read_while_writer_retry.delay INT 50parent.configdest_domain=encoder.domain.com <http://encoder.domain.com> method=get parent="172.16.16.10:80 <http://172.16.16.10:80>" go_direct=falseremap.configmap http://encoder.domain.com <http://encoder.domain.com> http://encoder.domain.com <http://encoder.domain.com> @plugin=/opt/ats/libexec/trafficserver/regex_remap.so @pparam=/tmp/regex.config @pparam=no-query-string[root@cachingtest trafficserver]# cat /tmp/regex.config^/(.*)$ http://encoder.domain.com/$1 <http://encoder.domain.com/$1>Logs:Child “C” :1447767164.044 0 172.16.0.24 TCP_HIT/200 25546 GET http://encoder.domain.com/dash/news9/3_545-0-I-1263237.m4s <http://encoder.domain.com/dash/news9/3_545-0-I-1263237.m4s> - NONE/- video/mp41447767164.069 0 172.16.0.24 TCP_HIT/200 26029 GET http://encoder.domain.com/dash/news9/3_545-0-I-1263238.m4s <http://encoder.domain.com/dash/news9/3_545-0-I-1263238.m4s> - NONE/- video/mp41447767164.092 0 172.16.0.24 TCP_HIT/200 25554 GET http://encoder.domain.com/dash/news9/3_545-0-I-1263239.m4s <http://encoder.domain.com/dash/news9/3_545-0-I-1263239.m4s> - NONE/- video/mp41447767164.096 44 172.16.0.24 TCP_HIT/200 301794 GET http://encoder.domain.com/dash/news9/1_289-0-I-1263237.m4s <http://encoder.domain.com/dash/news9/1_289-0-I-1263237.m4s> - NONE/- video/mp41447767164.789 0 172.16.0.24 TCP_HIT/200 25990 GET http://encoder.domain.com/dash/news9/3_545-0-I-1263240.m4s <http://encoder.domain.com/dash/news9/3_545-0-I-1263240.m4s> - NONE/- video/mp41447767165.710 919 172.16.0.24 TCP_HIT/200 293001 GET http://encoder.domain.com/dash/news9/1_289-0-I-1263238.m4s <http://encoder.domain.com/dash/news9/1_289-0-I-1263238.m4s> - NONE/- video/mp41447767171.128 79 172.16.0.24 TCP_MISS/200 25419 GET http://encoder.domain.com/dash/news9/3_545-0-I-1263241.m4s <http://encoder.domain.com/dash/news9/3_545-0-I-1263241.m4s> - PARENT_HIT/172.16.16.10 <http://172.16.16.10> video/mp41447767171.278 79 172.16.0.24 TCP_MISS/200 26194 GET http://encoder.domain.com/dash/news9/3_545-0-I-1263242.m4s <http://encoder.domain.com/dash/news9/3_545-0-I-1263242.m4s> - PARENT_HIT/172.16.16.10 <http://172.16.16.10> video/mp41447767171.420 73 172.16.0.24 TCP_MISS/200 25336 GET http://encoder.domain.com/dash/news9/3_545-0-I-1263243.m4s <http://encoder.domain.com/dash/news9/3_545-0-I-1263243.m4s> - PARENT_HIT/172.16.16.10 <http://172.16.16.10> video/mp41447767171.497 70 172.16.0.24 TCP_MISS/200 25763 GET http://encoder.domain.com/dash/news9/3_545-0-I-1263244.m4s <http://encoder.domain.com/dash/news9/3_545-0-I-1263244.m4s> - PARENT_HIT/172.16.16.10 <http://172.16.16.10> video/mp41447767173.732 74 172.16.0.24 TCP_MISS/200 25616 GET http://encoder.domain.com/dash/news9/3_545-0-I-1263245.m4s <http://encoder.domain.com/dash/news9/3_545-0-I-1263245.m4s> - PARENT_HIT/172.16.16.10 <http://172.16.16.10> video/mp4Parent “B”:1447767174.205 229 172.16.0.42 TCP_MISS/200 293001 GET http://encoder.domain.com/dash/news9/1_289-0-I-1263238.m4s <http://encoder.domain.com/dash/news9/1_289-0-I-1263238.m4s> - PARENT_HIT/172.16.0.40 <http://172.16.0.40> video/mp41447767174.552 70 172.16.0.42 TCP_MISS/200 26029 GET http://encoder.domain.com/dash/news9/3_545-0-I-1263238.m4s <http://encoder.domain.com/dash/news9/3_545-0-I-1263238.m4s> - PARENT_HIT/172.16.0.40 <http://172.16.0.40> video/mp41447767175.732 73 172.16.0.42 TCP_MISS/200 25554 GET http://encoder.domain.com/dash/news9/3_545-0-I-1263239.m4s <http://encoder.domain.com/dash/news9/3_545-0-I-1263239.m4s> - PARENT_HIT/172.16.0.40 <http://172.16.0.40> video/mp41447767176.179 317 172.16.0.42 TCP_MISS/200 499092 GET http://encoder.domain.com/dash/news9/1_289-0-I-1263239.m4s <http://encoder.domain.com/dash/news9/1_289-0-I-1263239.m4s> - PARENT_HIT/172.16.0.40 <http://172.16.0.40> video/mp41447767177.747 72 172.16.0.42 TCP_MISS/200 25990 GET http://encoder.domain.com/dash/news9/3_545-0-I-1263240.m4s <http://encoder.domain.com/dash/news9/3_545-0-I-1263240.m4s> - PARENT_HIT/172.16.0.40 <http://172.16.0.40> video/mp41447767178.325 257 172.16.0.42 TCP_MISS/200 455293 GET http://encoder.domain.com/dash/news9/1_289-0-I-1263240.m4s <http://encoder.domain.com/dash/news9/1_289-0-I-1263240.m4s> - PARENT_HIT/172.16.0.40 <http://172.16.0.40> video/mp41447767185.678 50 172.16.0.42 TCP_MISS/200 25419 GET http://encoder.domain.com/dash/news9/3_545-0-I-1263241.m4s <http://encoder.domain.com/dash/news9/3_545-0-I-1263241.m4s> - PARENT_HIT/172.16.0.40 <http://172.16.0.40> video/mp41447767185.833 54 172.16.0.42 TCP_MISS/200 26194 GET http://encoder.domain.com/dash/news9/3_545-0-I-1263242.m4s <http://encoder.domain.com/dash/news9/3_545-0-I-1263242.m4s> - PARENT_HIT/172.16.0.40 <http://172.16.0.40> video/mp41447767185.977 53 172.16.0.42 TCP_MISS/200 25336 GET http://encoder.domain.com/dash/news9/3_545-0-I-1263243.m4s <http://encoder.domain.com/dash/news9/3_545-0-I-1263243.m4s> - PARENT_HIT/172.16.0.40 <http://172.16.0.40> video/mp41447767186.054 50 172.16.0.42 TCP_MISS/200 25763 GET http://encoder.domain.com/dash/news9/3_545-0-I-1263244.m4s <http://encoder.domain.com/dash/news9/3_545-0-I-1263244.m4s> - PARENT_HIT/172.16.0.40 <http://172.16.0.40> video/mp41447767188.287 50 172.16.0.42 TCP_MISS/200 25616 GET http://encoder.domain.com/dash/news9/3_545-0-I-1263245.m4s <http://encoder.domain.com/dash/news9/3_545-0-I-1263245.m4s> - PARENT_HIT/172.16.0.40 <http://172.16.0.40> video/mp4Parent “A”:1447767337.197 207 172.16.16.10 TCP_MISS/200 499092 GET http://172.16.100.13/dash/news9/1_289-0-I-1263239.m4s <http://172.16.100.13/dash/news9/1_289-0-I-1263239.m4s> - DIRECT/172.16.100.13 <http://172.16.100.13> video/mp41447767338.797 37 172.16.16.10 TCP_MISS/200 25990 GET http://172.16.100.13/dash/news9/3_545-0-I-1263240.m4s <http://172.16.100.13/dash/news9/3_545-0-I-1263240.m4s> - DIRECT/172.16.100.13 <http://172.16.100.13> video/mp41447767339.384 220 172.16.16.10 TCP_MISS/200 455293 GET http://172.16.100.13/dash/news9/1_289-0-I-1263240.m4s <http://172.16.100.13/dash/news9/1_289-0-I-1263240.m4s> - DIRECT/172.16.100.13 <http://172.16.100.13> video/mp41447767346.728 12 172.16.16.10 TCP_MISS/200 25419 GET http://172.16.100.13/dash/news9/3_545-0-I-1263241.m4s <http://172.16.100.13/dash/news9/3_545-0-I-1263241.m4s> - DIRECT/172.16.100.13 <http://172.16.100.13> video/mp41447767346.883 7 172.16.16.10 TCP_MISS/200 26194 GET http://172.16.100.13/dash/news9/3_545-0-I-1263242.m4s <http://172.16.100.13/dash/news9/3_545-0-I-1263242.m4s> - DIRECT/172.16.100.13 <http://172.16.100.13> video/mp41447767347.027 19 172.16.16.10 TCP_MISS/200 25336 GET http://172.16.100.13/dash/news9/3_545-0-I-1263243.m4s <http://172.16.100.13/dash/news9/3_545-0-I-1263243.m4s> - DIRECT/172.16.100.13 <http://172.16.100.13> video/mp41447767347.104 11 172.16.16.10 TCP_MISS/200 25763 GET http://172.16.100.13/dash/news9/3_545-0-I-1263244.m4s <http://172.16.100.13/dash/news9/3_545-0-I-1263244.m4s> - DIRECT/172.16.100.13 <http://172.16.100.13> video/mp41447767349.337 8 172.16.16.10 TCP_MISS/200 25616 GET http://172.16.100.13/dash/news9/3_545-0-I-1263245.m4s <http://172.16.100.13/dash/news9/3_545-0-I-1263245.m4s> - DIRECT/172.16.100.13 <http://172.16.100.13> video/mp4* -- Randeep Mob: +919447831699[kerala] Mob: +919880050349[B'lore] http://twitter.com/Randeeppr http://in.linkedin.com/in/randeeppr