vinyld(1) General Commands Manual vinyld(1) (NAME) vinyld - HTTP (SYNOPSIS) vinyld [-a [name=][listen_address[,PROTO|,option=value,...]] [-b [host[:port]|path]] [-C] [-d] [-E extension] [-F] [-f config] [-h type[,options]] [-I clifile] [-i identity] [-j jail[,jailoptions]] [-l vsl] [-M address:port] [-n workdir] [-P file] [-p param=value] [-r param[,param...]] [-S secret-file] [-s [name=]kind[,options]] [-T address[:port]] [-t TTL] [-V] [-W waiter] vinyld [-x parameter|vsl|cli|builtin|optstring] vinyld [-?] (DESCRIPTION) vinyld HTTP (backend) . (OPTIONS) (Basic options) -a <[name=][listen_address[,PROTO|,option=value,...]]> listen_address. . (Name) VCL local.socket . a ("a0" "a1" ) . listen_address = option=value (acceptor) (PROTO) . . PROTO "HTTP" () "PROXY" . proxy . -a . -a -a :80 IPv4 IPv6 . -a <[name=][ip_address][:port][,PROTO]> ip_address ("localhost") IPv4 ("127.0.0.1") IPv6 ("[::1]") . port (80) (http) (80-81) . . port 80 (http) . ip_address port . -a <[name=][path][,PROTO][,user=name][,group=name][,mode=octal]> (VCL 4.1 ) (Unix domain socket). path ("/path/to/listen.sock") "@" ("@myvinyld"). user group mode -- user group mode . . -b <[host[:port]|path]> (backend). port 8080 . -b / vinyld . -b .path backend vcl(7) . VCL 4.1 . -b f . -f config VCL . VCL vcl(7) . -f VCL "boot" . -f VCL -f "boot0" "boot1" "boot" . -b -f -d vinyld (debugging) . -f vinyld CLI . -f ( -I) VCL . config vcl_path . -f -p . vinyld VCL : vinyl-cli(7) vinyld . -n workdir VCL . RAM . vinyld . VINYL_DEFAULT_N . /var/lib/lib/vinyl-cache . VINYL_DEFAULT_N -n /var/lib/lib/vinyl-cache/vinyld . : . vinyld . -x ( reStructuredText RST ). -? . -x parameter ( -p) List of Parameters . -x vsl Vinyld Cache vsl(7) . -x cli vinyl-cli(7) . -x builtin VCL builtin.vcl. -x optstring optstring getopt(3) (wrapper). (Operations options) -F (fork ) . -F -d -F -C . -T . vinyl-cli(7) . none . -M . (reverse shell) . -M (backend) ( ) . -P file PID . -i identity Vinyl Cache. server.identity VCL . received-by Via Vinyl Cache . (token) HTTP . gethostname(3) . -I clifile clifile (worker process) CLI Command File . -E extension . (VMOD) vinyld VCL . VMOD VCL . VMOD . extension / . extension ext vmod_ext.so vmod_path . vinyld . -t TTL (TTL) . default_ttl . -p param (List of Parameters) . . -s <[name=]type[,options]> (storage backend) . Storage Backend . . name VCL . name "s0" "s1" . -l VSL -p vsl_space= . 'K' 'M' (G) . vsl_space . (Security options) -r . CLI Vinyl Cache . cc_command vcc_allow_inline_c vmod_path CLI . -S secret-file . none . PRNG _.secret ( opt_n ) vinyld . vinyld ( ). -j (jail) . Jail . (Advanced, development and debugging options) -d (debugging) : CLI stdin/stdout CLI . . -d -F -d -C . -C VCL C . VCL -f . -C -f -b -C -F -d . -V . . -h (hash) . Hash Algorithm . -W waiter waiter . (Hash Algorithm) : -h critbit (self-scaling). Vinyl Cache 2.1 . B critbit (lockless) . . -h simple_list . (production) . -h . CRC32 URL . . buckets . 16383 . ( ) VCL beresp.storage ( man vcl-var ). : -s <[name]=kind[,options]> name vinyld sN s0 N . kind options . VCL storage.name myStorage -s myStorage=malloc,5G VCL : set beresp.storage = storage.myStorage; name Transient pass hit-for-miss hit-for-pass . -s : -s default,100m Transient default : -s Transient=default : -s umem malloc . -s malloc . -s umem malloc . umem Storage backends The Vinyl Users Guide . -s file . mmap . . (path) . (unlink) . . size path . . Granularity . (page size) . Advice vinyld (read-ahead) . normal random sequential MADV_NORMAL MADV_RANDOM MADV_SEQUENTIAL ()madvise . random . -s (Persistent storage). vinyld vinyld . persistent Vinyl Cache . Vinyl Cache vinyld . . : -j privileges(5) vinyld . setppriv(2) . worker ( ppriv(1) ) (worker) vinyld . vmod worker . worker: -j solaris,worker=basic -j UNIX : o workdir tmpfs . o (dumpable) . o transparent hugepage (THP) . thp_setting : o ignore: . o enable: THP ( ). o disable: THP. o try-disable (): ( ). : enable << >> ("disable the disable") THP . . -j vinyld 0 ( <>) . unix vinyld . user . vinyl . ccgroup vinyld C . . workuser worker . vcache . user workuser . Varnish Cache : userdel varnish || true userdel vcache || true userdel varnishlog || true # to remove reference to varnish group groupdel varnish || true vinyl : groupadd vinyl useradd -g vinyl -d /nonexistent -s /bin/false \ -c "Vinyl Cache Daemon User" vinyl useradd -g vinyl -d /nonexistent -s /bin/false \ -c "Vinyl Cache Worker User" vcache useradd -g vinyl -d /nonexistent -s /bin/false \ -c "Vinyl Log User" vinyllog vinyllog vinyllog vinylncsa VSM/VSL . -j none : none vinyld . -T vinyld (port) . vinyladm(1) . vinyl-cli(7) . CLI -I vinyld (worker process) . VCL : vcl.load panic /etc/vinyl-cache/panic.vcl vcl.load siteA0 /etc/vinyl-cache/siteA.vcl vcl.load siteB0 /etc/vinyl-cache/siteB.vcl vcl.load siteC0 /etc/vinyl-cache/siteC.vcl vcl.label siteA siteA0 vcl.label siteB siteB0 vcl.label siteC siteC0 vcl.load main /etc/vinyl-cache/main.vcl vcl.use main (newline) (carriage return) (fatal error) . '-' . CLI vcl.use VCL VCL . (RUN TIME PARAMETERS) -p vinyld(1) CLI param.set param.reset . -r . . bool on off . : o yes no o true false o enable disable bytes bytes : o b () o k ( 1024 ) o m ( 1024 ) o g ( 1024 ) o t ( 1024 ) o p ( 1024 ) b . 32k 32kb . (case-insensitive)..SS (seconds) (duration) : o ms () o s () o m () o h () o d () o w () o y () (timeout) (deadline) "never" ( ) . (Run Time Parameter Flags) . : o experimental // . . o delayed . o restart worker . o reload VCL (reload) . o wizard . o only_root vinyld (root) . (Default Value Exceptions on 32 bit Systems) (VM) : o workspace_client: 24k o workspace_backend: 20k o http_resp_size: 8k o http_req_size: 12k o gzip_buffer: 4k o vsl_buffer: 4k o vsl_space: 1G () o thread_pool_stack: 64k param.show CLI : accept_filter : . o : bool o : on ( accept filter ) accept-filter . . accept_filter Vinyl Cache . (malformed) client_req_400 . GET HEAD . acceptor_sleep_decay o : 0.9 o : 0 o : 1 o : experimental (file descriptors) worker thread acceptor . ( ) (: 0.9 = ). acceptor_sleep_incr o : seconds o : 0.000 o : 0.000 o : 1.000 o : experimental worker thread acceptor . . acceptor_sleep_max o : seconds o : 0.050 o : 0.000 o : 10.000 o : experimental worker thread acceptor . ..SS auto_restart o : bool o : on / (child/worker) . backend_idle_timeout o : o : 60.000 o : 1.000 () backend. backend_local_error_holddown o : o : 10.000 o : 0.000 o : experimental backend (EADDRNOTAVAIL, EACCESS, EPERM) (kernel) . . backend_remote_error_holddown o : o : 0.250 o : 0.000 o : experimental backend (ECONNREFUSED, ENETUNREACH) backend . . backend_wait_limit o : 0 o : 0 o : experimental backend . 0 () . VCL backend (override) . (threads) ..SS backend_wait_timeout o : o : 0.000 o : 0.000 o : timeout, experimental backend ( backend_wait_limit ) . . VCL backend . . ban_any_variant o : o : 0 o : 0 (variants) (lookup) ban . 0 ban . ban_cutoff o : ban o : 0 o : 0 o : experimental (long tail) ban . 0 . ban lurker ban ban ban_cutoff ban . ban ban ban_cutoff ("long tail") . ban (lookup) . cutoff . rate(bans_lurker_tests_tested) / n_objects ban lurker ban . ban ban_cutoff / rate(bans_lurker_tests_tested) . rate(bans_lurker_tests_tested) = 2M/s 100 ban_cutoff 200K . ban_dups o : bool o : on ban ban . ban CPU . ban . ban_lurker_age o : o : 60.000 o : 0.000 ban lurker ban . ban . ban ban-lurker . ban ..SS ban_lurker_batch o : 1000 o : 1 ban lurker ${ban_lurker_sleep} . ban-lurker . ban_lurker_holdoff o : o : 0.010 o : 0.000 o : experimental ban lurker (lookup) (lock contention) . ban_lurker_sleep o : o : 0.010 o : 0.000 ban lurker ${ban_lurker_batch} . ban-lurker . ban lurker . between_bytes_timeout o : o : 60.000 o : 0.000 o : timeout (fetch) backend . VCL backend backend . pipe' . cc_command : Vinyl Cache . o : exec $CC $CFLAGS %w -shared -o %o %s o : must_reload C dlopen(3) . : o %s: o %o: o %w: cc_warnings o %d: cc_command o %D: cc_command o %n: ( -n) o %%: (escape) . %d %D (wrapper) ..SS cc_warnings : Vinyl Cache . o : -Wall -Werror o : must_reload C cc_command . VCL Vinyl Cache . cli_limit o : o : 64k o : 128b o : 99999999b CLI. 200 201 (truncation) . cli_timeout o : o : 60.000 o : 0.000 o : timeout CLI. clock_skew o : o : 10 o : 0 (clock skew) backend . clock_step o : o : 1.000 o : 0.000 (clock step) (panic) . connect_timeout o : o : 3.500 o : 0.000 o : timeout backend. backend . VCL backend backend (override) ..SS critbit_cooloff o : o : 180.000 o : 60.000 o : 254.000 o : wizard critbit objhead cooloff . debug o : none / . none +/- / : req_state VSL workspace VSL waitinglist Waitinglist VSL syncvsl VSL hashedge Hash vclrel VCL lurker Ban lurker VSL esi_chop ESI flush_head http1 vtc_mode Vinyltest witness WITNESS vsm_keep VSM slow_acceptor (Acceptor) h2_nocheck H2 vmod_so_keep VMOD processors Fetch/Deliver protocol vcl_keep C so VCL lck (lock) o : o : 10s o : 0.000 o : obj_sticky (grace) . (thread) . default_keep o : o : 0s o : 0.000 o : obj_sticky (keep) . backend . ttl+grace+keep (cache) . default_ttl o : o : 2m o : 0.000 o : obj_sticky TTL backend VCL . experimental o : none / . none / +/- : drop_pools thread pool o : none,+https_scheme,+validate_headers,+vcl_req_reset . default ( : param.reset ) none . +/- : http2 HTTP/2. short_panic panic . no_coredump coredump. . https_scheme URI HTTP/1 (scheme) https . http_date_postel Date Last-Modified Expires . esi_ignore_https http://... esi_disable_xml_check ESI XML ESI esi_ignore_other_elements XML ESI. esi_remove_bom UTF-8 BOM ESI. esi_include_onerror onerror . wait_silo (persistent silos) . validate_headers RFC9110 5.5. busy_stats_rate (busy workers) thread_stats_rate. trace (tracing) VCL ( (be)req.trace). vcl_init / vcl_fini . vcl_req_reset VCL . MAIN.req_reset . fetch_chunksize o : bytes o : 16k o : 4k o : experimental (chunksize) fetcher . TTL . storage_file 128kb ..SS fetch_maxchunksize o : o : 0.25G o : 64k o : experimental (chunksize) . (fragmentation) . first_byte_timeout o : o : 60.000 o : 0.000 o : timeout (timeout) backend. . VCL backend backend . pipe . gzip_buffer o : o : 32k o : 2k o : experimental malloc gzip. gzip. (in-transit) gunzip . . Gzip Transient . gzip_level o : 6 o : 0 o : 9 Gzip: 0= (debug) 1= (fast) 9= (best) gzip_memlevel o : 8 o : 1 o : 9 Gzip: 1=/ 9=/ . 1=1k 2=2k ... 9=256k ..SS h2_header_table_size o : o : 4k o : 0b HTTP2. HPACK . SETTINGS_HEADER_TABLE_SIZE SETTINGS HTTP2 . h2_initial_window_size o : o : 65535b o : 65535b o : 2147483647b HTTP2. SETTINGS_INITIAL_WINDOW_SIZE SETTINGS HTTP2 . h2_max_concurrent_streams o : (stream) o : 100 o : 0 (streams) HTTP2. HTTP2 . SETTINGS_MAX_CONCURRENT_STREAMS SETTINGS HTTP2 . h2_max_frame_size o : o : 16k o : 16k o : 16777215b (payload) HTTP2 . SETTINGS_MAX_FRAME_SIZE SETTINGS HTTP2 . h2_max_header_list_size o : o : 0b o : 0b o : 2147483647b HTTP2. SETTINGS_MAX_HEADER_LIST_SIZE SETTINGS http_req_size . http_req_size HTTP2 . http_req_size (reset stream) HPACK h2_max_header_list_size HTTP2 . h2_max_header_list_size http_req_size http_req_size ..SS h2_rapid_reset o : o : 1.000 o : 0.000 o : delayed, experimental RST_STREAM http/2 HEADERS h2_rapid_reset_limit h2_rapid_reset_period . HTTP2 . vmod_h2(3) VCL . h2_rapid_reset_limit o : 100 o : 0 o : delayed, experimental RST HTTP2. . 0 . HTTP2 . vmod_h2(3) VCL . h2_rapid_reset_period o : o : 60.000 o : 1.000 o : delayed, experimental, wizard HTTP2 h2_rapid_reset_limit. HTTP2 . vmod_h2(3) VCL . h2_rx_window_increment o : o : 1M o : 1M o : 1G o : wizard HTTP2. WINDOW_UPDATE . (: POST PUT ). h2_rx_window_low_water o : o : 10M o : 65535b o : 1G o : wizard HTTP2. . (: POST PUT )..SS h2_rxbuf_storage o : Transient o : must_restart backend HTTP/2 . h2_window_timeout o : o : 5.000 o : 0.000 o : timeout, wizard HTTP2 (window credits). (stream) DATA . http1_iovs o : struct iovec (=16 ) o : 64 o : 5 o : 1024 o : wizard io (io vector) HTTP1. HTTP1 + HTTP . workspace_thread . io . (backend fetches) io ( IOV_MAX) workspace_thread . http_gzip_support o : bool o : on gzip. Vinyl Cache . gzip Vinyl Cache . Vinyl Cache Accept-Encoding gzip : Accept-Encoding: gzip gzip Accept-Encoding . gzip gzip Vinyl Cache . gzip beresp.do_gzip beresp.do_gunzip VCL . http_max_hdr o : o : 64 o : 32 o : 65535 HTTP {req|resp|bereq|beresp}.http ( obj.http ). workspace (~ ). ..SS http_range_support o : bool o : on HTTP Range. http_req_hdr_len o : bytes o : 8k o : 40b HTTP. . http_req_overflow_status o : HTTP 0 o : 0 o : 400 o : 500 HTTP http_req_size . 0 HTTP . HTTP http_req_size . 414 URL 413 . 400 (0) . Vinyl Cache 500 . http_req_size o : bytes o : 32k o : 0.25k HTTP . HTTP . (: workspace_client) . HTTP2 MAX_HEADER_LIST_SIZE SETTINGS . http_resp_hdr_len o : bytes o : 8k o : 40b backend HTTP. . http_resp_size o : bytes o : 32k o : 0.25k backend HTTP . HTTP . backend (: workspace_backend) ..SS idle_send_timeout o : o : 60.000 o : 0.000 o : 3600.000 o : timeout, delayed . 'send_timeout' . . setsockopt(2) socket(7) SO_SNDTIMEO . listen_depth o : o : 1024 o : 0 o : must_restart (listen). lru_interval o : o : 2.000 o : 0.000 o : experimental LRU. LRU . LRU . max_esi_depth o : o : 5 o : 0 esi:include. max_restarts o : o : 4 o : 0 o : delayed ..SS max_retries o : o : 4 o : 0 o : delayed backend . max_vcl o : 100 o : 0 VCL. ( VCL .) max_vcl_handling . max_vcl_handling o : 1 o : 0 o : 2 VCL max_vcl. o 0 - max_vcl. o 1 - . o 2 - VCL. nuke_limit o : o : 50 o : 0 o : experimental (nuke) . panic_buffer o : o : 64k o : 4k o : 10M o : must_restart panic. panic management worker . panic (truncate) ..SS pcre2_depth_limit o : 20 o : 1 pcre2_match(). (: pcre2_set_depth_limit() pcre2.) (stack) PCRE2 . (crash) . VCL_Error . pcre2_jit_compilation o : bool o : on JIT pcre2 . pcre2_match_limit o : 10000 o : 1 pcre2_match(). (: pcre2_set_match_limit() pcre2.) (CPU) . ping_interval o : o : 3 o : 0 o : must_restart (parent) (child). (debugger) . pipe_sess_max o : o : 0 o : 0 pipe..SS pipe_task_deadline o : o : 0.000 o : 0.000 o : timeout PIPE. . pipe_timeout o : o : 60.000 o : 0.000 o : timeout PIPE. . pool_req o : 10,100,10 worker pool. : min_pool . max_pool . max_age . pool_sess o : 10,100,10 worker pool. : min_pool . max_pool . max_age . o : 10,100,10 (backend object fetch). : min_pool . max_pool . max_age . prefer_ipv6 o : bool o : off IPv6 IPv4 IPv6 . rush_exponent o : o : 3 o : 1 o : experimental . : (worker threads) . 1 () . send_timeout o : o : 600.000 o : 0.000 o : timeout, delayed (timeout) HTTP1. pipe . HTTP1 'idle_send_timeout' . ..SS shortlived o : o : 10.000 o : 0.000 (ttl+grace+keep) (transient storage) . sigsegv_handler o : bool o : on o : must_restart (segmentation fault) (bus error) abort . startup_timeout o : o : 0.000 o : 0.000 o : timeout (worker process). cli_timeout startup_timeout . syslog_cli_traffic o : bool o : on CLI syslog(LOG_INFO). tcp_fastopen : . o : bool o : off o : must_restart TCP Fast Open. tcp_keepalive_intvl : . o : o : o : 1.000 o : 100.000 o : experimental TCP keep-alive. (Unix domain sockets) ..SS tcp_keepalive_probes : . o : o : o : 1 o : 100 o : experimental TCP keep-alive . . tcp_keepalive_time : . o : o : o : 1.000 o : 7200.000 o : experimental (idle) TCP keep-alive . . thread_pool_add_delay o : o : 0.000 o : 0.000 o : experimental (thread) . ( ) ( ) . 'threads_failed' . (worker threads) . thread_pool_destroy_delay o : o : 1.000 o : 0.010 o : delayed, experimental (thread) . (thread pools) ( ) ..SS thread_pool_fail_delay o : o : 0.200 o : 0.010 o : experimental thread thread . thread (worker thread) . . thread thread_pool_max . thread_pool_timeout thread_pool_min thread . thread_pool_max o : thread o : 5000 o : thread_pool_min o : delayed thread (pool). thread RAM CPU . thread_pool_min o : thread o : 100 o : 5 o : thread_pool_max o : delayed thread . thread . thread . thread_pool_reserve o : thread o : 0 (auto-tune: thread_pool_min) o : thread_pool_min o : delayed thread . ( client backend http2 stream ). . ( ) ..SS thread_pool_stack o : o : 80k o : sysconf(_SC_THREAD_STACK_MIN) o : delayed . 4k ( page_size ) . call-tree . Vinyl Cache / GZIP ESI (regular expression). VMOD . VCL . size = thread_pools x thread_pool_max x thread_pool_stack . Vinyl Cache . thread_pool_stack Vinyl Cache (stack overflow) . (segfault / SIGSEGV) (sp) . thread_pool_stack . 150%-200% . thread_pool_timeout o : o : 300.000 o : 10.000 o : delayed, experimental . thread_pool_min . thread_pool_watchdog o : o : 60.000 o : 0.100 o : experimental (watchdog) . panic . thread_pools o : o : 2 o : 1 o : 32 o : delayed, experimental . (lock contention) . . CPU RAM CPU . (on the fly) drop_pools ..SS thread_queue_limit o : o : 20 o : 0 o : thread-pool. . (drop) . thread_stats_rate o : o : 10 o : 0 o : (worker threads) (/ ) . . timeout_idle o : o : 5.000 o : 0.000 o : 3600.000 (idle timeout) . . keepalive HTTP1 . timeout_linger o : o : 0.050 o : 0.000 o : waiter . . waiter . transit_buffer o : o : 0b o : 0b Vinyl Cache backend - Vinyl Cache backend . . (stream) . backend . VCL beresp.transit_buffer (transit buffer) backend ..SS uncacheable_ttl o : o : 2m o : 0.000 o : obj_sticky TTL VCL . vary_notice o : o : 10 o : 1 (Notice) . vcc_allow_inline_c vcc_feature. vcc_err_unref vcc_feature. vcc_feature o : none,+err_unref,+unsafe_path VCC. default (: param.reset ) none . +/- : err_unref VCL . allow_inline_c C VCL. unsafe_path '/' include vmod. 'import ... from ...'. vcc_unsafe_path vcc_feature..SS vcl_cooldown o : o : 600.000 o : 1.000 VCL VCL ( ). vcl_path : Vinyl Cache . o : ${sysconfdir}/vinyl-cache:${datadir}/vinyl-cache/vcl ( ) VCL ( vcl.load include) . Vinyl Cache VCL VCL include . +glob (include) vcl_path . vmod_path : Vinyl Cache . o : ${libdir}/vinyl-cache/vmods ( ) VMOD . vsl_buffer o : o : 16k o : vsl_reclen + 12 (req-/backend-) VSL. workspace_client workspace_backend . (flush) VSL (lock-contention) mutex VSL . vsl_mask o : all,-Debug,-ObjProtocol,-ObjStatus,-ObjReason,-ObjHeader,-ExpKill,-WorkThread,-Hash,-VfpAcct,-H2RxHdr,-H2RxBody,-H2TxHdr,-H2TxBody,-VdpAcct,-ReqTarget VSL . all default ( : param.reset ) VSL +/- VSL . vsl(7) ..SS vsl_reclen o : o : 255b o : 16b o : vsl_buffer - 12 SHM. vsl_space o : o : 80M o : 1M o : 4G o : must_restart fifo VSL VSM. vinyl{ncsa|log} . . vsm_free_cooldown o : o : 60.000 o : 10.000 o : 600.000 VSM ( ) ( ). workspace_backend o : o : 96k o : 1k o : delayed HTTP req/resp backend HTTP. 4k (VM) 4k . workspace_client o : o : 96k o : 9k o : delayed HTTP req/resp HTTP. (VM) 4k . HTTP/2 20k (=16k) . POST/PUT . (traffic-patterns) ..SS workspace_session o : o : 0.75k o : 384b o : delayed (session) . TCP . 4k (VM) 4k . workspace_thread o : o : 2k o : 0.25k o : 8k o : delayed (thread). (worker thread) . IO-vector . writev() . ~0.1k + UIO_MAXIOV * sizeof(struct iovec) ( = ~16k ) ( vmod) . (EXIT CODES) Vinyl Cache : o 0 (OK) o 1 / o 2 / - / (master) vinyld OR : o 0x20 vinyld o 0x40 vinyld o 0x80 (core dump) . (SEE ALSO) o vinyllog(1) o vinylhist(1) o vinylncsa(1) o vinylstat(1) o vinyltop(1) o vinyl-cli(7) o vcl(7) (HISTORY) vinyld Poul-Henning Kamp Verdens Gang AS Redpill-Linpro . Dag-Erling Smorgrav Stig Sandbeck Mathisen <> Nils Goroll ..SH " (COPYRIGHT)" Vinyl Cache . LICENCE . o Copyright (c) 2007-2015 Varnish Software AS vinyld(1)