You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@trafficserver.apache.org by Reindl Harald <h....@thelounge.net> on 2013/08/10 15:21:37 UTC

3.3.5: performance regression?

has anybody compared 3.2 / 3.3 in performance?

ab -c 200 -n 100000 http://<url>/rte/upload/logo.gif while "logo.gif" is
643 bytes small and currently httpd without Trafficserver in front has
nearly the same perfomrance with even lower CPU

"records.config" on both machines is identical
______________________________________________________

3.2.5

Total transferred:      95796163 bytes
HTML transferred:       64296142 bytes
Requests per second:    9002.97 [#/sec] (mean)
Time per request:       22.215 [ms] (mean)
Time per request:       0.111 [ms] (mean, across all concurrent requests)
Transfer rate:          8422.36 [Kbytes/sec] received
______________________________________________________

3.3.5

Total transferred:      94758456 bytes
HTML transferred:       64271708 bytes
Requests per second:    3178.58 [#/sec] (mean)
Time per request:       62.921 [ms] (mean)
Time per request:       0.315 [ms] (mean, across all concurrent requests)
Transfer rate:          2941.38 [Kbytes/sec] received
______________________________________________________

Apache 2.4 directly:

Total transferred:      95899041 bytes
HTML transferred:       64299357 bytes
Requests per second:    2453.78 [#/sec] (mean)
Time per request:       81.507 [ms] (mean)
Time per request:       0.408 [ms] (mean, across all concurrent requests)
Transfer rate:          2298.00 [Kbytes/sec] received
______________________________________________________

[root@testserver:~]$ cat records.config
##############################################################################
# System Variables                                                           #
##############################################################################
CONFIG proxy.config.proxy_name STRING testserver.rhsoft.net
CONFIG proxy.config.config_dir STRING /etc/trafficserver
CONFIG proxy.config.proxy_binary_opts STRING -M
CONFIG proxy.config.temp_dir STRING /tmp
CONFIG proxy.config.alarm_email STRING ats
CONFIG proxy.config.syslog_facility STRING LOG_DAEMON
CONFIG proxy.config.output.logfile STRING traffic.out
CONFIG proxy.config.snapshot_dir STRING snapshots
CONFIG proxy.config.system.mmap_max INT 2097152

##############################################################################
# Main threads configuration (worker threads). Also see configurations for   #
# SSL threads, disk I/O threads and task threads in their respective areas   #
##############################################################################
CONFIG proxy.config.exec_thread.autoconfig INT 1
CONFIG proxy.config.accept_threads INT 1

##############################################################################
# Local Manager                                                              #
##############################################################################
CONFIG proxy.config.admin.admin_user STRING admin
CONFIG proxy.config.admin.number_config_bak INT 0
CONFIG proxy.config.admin.user_id STRING ats

##############################################################################
# Process Manager                                                            #
##############################################################################
CONFIG proxy.config.admin.autoconf_port INT 8083
CONFIG proxy.config.process_manager.mgmt_port INT 8084

##############################################################################
# HTTP Engine                                                                #
##############################################################################
LOCAL proxy.local.incoming_ip_to_bind STRING 84.113.45.81
CONFIG proxy.config.http.server_ports STRING 80
CONFIG proxy.config.http.connect_ports STRING 80
CONFIG proxy.config.http.insert_request_via_str INT 0
CONFIG proxy.config.http.insert_response_via_str INT 0
CONFIG proxy.config.http.response_server_enabled INT 0
CONFIG proxy.config.http.insert_age_in_response INT 1
CONFIG proxy.config.http.enable_url_expandomatic INT 0
CONFIG proxy.config.http.no_dns_just_forward_to_parent INT 0
CONFIG proxy.config.http.uncacheable_requests_bypass_parent INT 0
CONFIG proxy.config.http.keep_alive_enabled_in INT 1
CONFIG proxy.config.http.keep_alive_enabled_out INT 0
CONFIG proxy.config.http.chunking_enabled INT 1
CONFIG proxy.config.http.send_http11_requests INT 1
CONFIG proxy.config.http.share_server_sessions INT 1
CONFIG proxy.config.http.origin_server_pipeline INT 1
CONFIG proxy.config.http.user_agent_pipeline INT 8
CONFIG proxy.config.http.referer_filter INT 0
CONFIG proxy.config.http.accept_unknown_methods INT 0

##############################################################################
# parent proxy configuration                                                 #
##############################################################################
CONFIG proxy.config.http.parent_proxy_routing_enable INT 0

##############################################################################
# HTTP connection timeouts (secs)                                            #
# out: proxy -> origin server connection                                     #
# in : ua -> proxy connection                                                #
##############################################################################
CONFIG proxy.config.http.keep_alive_no_activity_timeout_in INT 1
CONFIG proxy.config.http.keep_alive_no_activity_timeout_out INT 0
CONFIG proxy.config.http.transaction_no_activity_timeout_in INT 60
CONFIG proxy.config.http.transaction_no_activity_timeout_out INT 60
CONFIG proxy.config.http.transaction_active_timeout_in INT 3600
CONFIG proxy.config.http.transaction_active_timeout_out INT 0
CONFIG proxy.config.http.accept_no_activity_timeout INT 1
CONFIG proxy.config.http.background_fill_active_timeout INT 60
CONFIG proxy.config.http.background_fill_completed_threshold FLOAT 0.000000

##############################################################################
# origin server connect attempts                                             #
##############################################################################
CONFIG proxy.config.http.connect_attempts_max_retries INT 10
CONFIG proxy.config.http.connect_attempts_max_retries_dead_server INT 10
CONFIG proxy.config.http.connect_attempts_rr_retries INT 10
CONFIG proxy.config.http.connect_attempts_timeout INT 30
CONFIG proxy.config.http.post_connect_attempts_timeout INT 1800
CONFIG proxy.config.http.down_server.cache_time INT 5
CONFIG proxy.config.http.down_server.abort_threshold INT 30

##############################################################################
# congestion control                                                         #
##############################################################################
CONFIG proxy.config.http.congestion_control.enabled INT 0

##############################################################################
# negative response caching                                                  #
##############################################################################
CONFIG proxy.config.http.negative_caching_enabled INT 1
CONFIG proxy.config.http.negative_caching_lifetime INT 60

##############################################################################
# proxy users variables                                                      #
##############################################################################
CONFIG proxy.config.http.anonymize_remove_from INT 0
CONFIG proxy.config.http.anonymize_remove_referer INT 0
CONFIG proxy.config.http.anonymize_remove_user_agent INT 0
CONFIG proxy.config.http.anonymize_remove_cookie INT 0
CONFIG proxy.config.http.anonymize_remove_client_ip INT 0
CONFIG proxy.config.http.anonymize_insert_client_ip INT 0
CONFIG proxy.config.http.anonymize_other_header_list STRING NULL
CONFIG proxy.config.http.insert_squid_x_forwarded_for INT 1

##############################################################################
# security                                                                   #
##############################################################################
CONFIG proxy.config.http.push_method_enabled INT 0

##############################################################################
# cache control                                                              #
##############################################################################
CONFIG proxy.config.http.normalize_ae_gzip INT 1
CONFIG proxy.config.http.cache.http INT 1
CONFIG proxy.config.http.cache.cache_responses_to_cookies INT 3
CONFIG proxy.config.http.cache.cache_urls_that_look_dynamic INT 1
CONFIG proxy.config.http.cache.ims_on_client_no_cache INT 1
CONFIG proxy.config.http.cache.ignore_client_cc_max_age INT 0
CONFIG proxy.config.http.cache.ignore_client_no_cache INT 0
CONFIG proxy.config.http.cache.ignore_accept_mismatch INT 1
CONFIG proxy.config.http.cache.ignore_accept_language_mismatch INT 1
CONFIG proxy.config.http.cache.ignore_accept_charset_mismatch INT 1
CONFIG proxy.config.http.cache.ignore_server_no_cache INT 0
CONFIG proxy.config.http.cache.ignore_authentication INT 0
CONFIG proxy.config.http.cache.enable_default_vary_headers INT 0
CONFIG proxy.config.http.cache.when_to_revalidate INT 0
CONFIG proxy.config.http.cache.when_to_add_no_cache_to_msie_requests INT 0
CONFIG proxy.config.http.cache.required_headers INT 0
CONFIG proxy.config.http.cache.max_stale_age INT 1800
CONFIG proxy.config.http.cache.range.lookup INT 1
CONFIG proxy.config.cache.vary_on_user_agent INT 0

##############################################################################
# heuristic expiration                                                       #
##############################################################################
CONFIG proxy.config.http.cache.heuristic_min_lifetime INT 60
CONFIG proxy.config.http.cache.heuristic_max_lifetime INT 60
CONFIG proxy.config.http.cache.heuristic_lm_factor FLOAT 0.100000
CONFIG proxy.config.http.cache.fuzz.time INT 60
CONFIG proxy.config.http.cache.fuzz.probability FLOAT 0.005000

##############################################################################
# dynamic content & content negotiation                                      #
##############################################################################
CONFIG proxy.config.http.cache.vary_default_text STRING Accept-Encoding
CONFIG proxy.config.http.cache.vary_default_images STRING NULL
CONFIG proxy.config.http.cache.vary_default_other STRING NULL

##############################################################################
# The HTTP stats are expensive, turn off you dont need them                  #
##############################################################################
CONFIG proxy.config.http.enable_http_stats INT 0

##############################################################################
# Customizable User Response Pages                                           #
##############################################################################
CONFIG proxy.config.body_factory.enable_customizations INT 1
CONFIG proxy.config.body_factory.enable_logging INT 0
CONFIG proxy.config.body_factory.response_suppression_mode INT 0

##############################################################################
# Net Subsystem                                                              #
##############################################################################
CONFIG proxy.config.net.connections_throttle INT 30000
CONFIG proxy.config.net.defer_accept INT 1

##############################################################################
# Cluster Subsystem                                                          #
##############################################################################
LOCAL proxy.local.cluster.type INT 3

##############################################################################
# Cache                                                                      #
##############################################################################
CONFIG proxy.config.cache.permit.pinning INT 0
CONFIG proxy.config.cache.ram_cache.size INT 2048
CONFIG proxy.config.cache.ram_cache_cutoff INT 4194304
CONFIG proxy.config.cache.ram_cache.algorithm INT 0
CONFIG proxy.config.cache.ram_cache.use_seen_filter INT 0
CONFIG proxy.config.cache.ram_cache.compress INT 0
CONFIG proxy.config.cache.limits.http.max_alts INT 10
CONFIG proxy.config.cache.target_fragment_size INT 262144
CONFIG proxy.config.cache.max_doc_size INT 0
CONFIG proxy.config.cache.enable_read_while_writer INT 1
CONFIG proxy.config.connection_collapsing.hashtable_enabled INT 1
CONFIG proxy.config.cache.min_average_object_size INT 8000
CONFIG proxy.config.cache.threads_per_disk INT 8
CONFIG proxy.config.cache.mutex_retry_delay INT 2

##############################################################################
# DNS                                                                        #
##############################################################################
CONFIG proxy.config.dns.search_default_domains INT 1
CONFIG proxy.config.dns.splitDNS.enabled INT 0
CONFIG proxy.config.dns.max_dns_in_flight INT 2048
CONFIG proxy.config.dns.url_expansions STRING NULL
CONFIG proxy.config.dns.round_robin_nameservers INT 0
CONFIG proxy.config.dns.nameservers STRING 127.0.0.1
CONFIG proxy.config.dns.resolv_conf STRING NULL
CONFIG proxy.config.dns.validate_query_name INT 0

##############################################################################
# HostDB                                                                     #
##############################################################################
CONFIG proxy.config.hostdb.size INT 50000
CONFIG proxy.config.hostdb.storage_size INT 14680064
CONFIG proxy.config.hostdb.ttl_mode INT 0
CONFIG proxy.config.hostdb.timeout INT 1440
CONFIG proxy.config.hostdb.strict_round_robin INT 0

##############################################################################
# Logging Config                                                             #
#                                                                            #
# 0: no logging at all                                                       #
# 1: log errors only                                                         #
# 2: log transactions only                                                   #
# 3: full logging (errors + transactions)                                    #
##############################################################################
LOCAL proxy.local.log.collation_mode INT 0
CONFIG proxy.config.log.logging_enabled INT 1
CONFIG proxy.config.log.max_secs_per_buffer INT 5
CONFIG proxy.config.log.max_space_mb_for_logs INT 25000
CONFIG proxy.config.log.max_space_mb_for_orphan_logs INT 25
CONFIG proxy.config.log.max_space_mb_headroom INT 1000
CONFIG proxy.config.log.hostname STRING localhost
CONFIG proxy.config.log.logfile_dir STRING /var/log/trafficserver
CONFIG proxy.config.log.logfile_perm STRING rw-rw----
CONFIG proxy.config.log.custom_logs_enabled INT 0
CONFIG proxy.config.log.squid_log_enabled INT 0
CONFIG proxy.config.log.squid_log_is_ascii INT 0
CONFIG proxy.config.log.squid_log_name STRING squid
CONFIG proxy.config.log.squid_log_header STRING NULL
CONFIG proxy.config.log.common_log_enabled INT 0
CONFIG proxy.config.log.common_log_is_ascii INT 1
CONFIG proxy.config.log.common_log_name STRING common
CONFIG proxy.config.log.common_log_header STRING NULL
CONFIG proxy.config.log.extended_log_enabled INT 0
CONFIG proxy.config.log.extended_log_is_ascii INT 0
CONFIG proxy.config.log.extended_log_name STRING extended
CONFIG proxy.config.log.extended_log_header STRING NULL
CONFIG proxy.config.log.extended2_log_enabled INT 0
CONFIG proxy.config.log.extended2_log_is_ascii INT 1
CONFIG proxy.config.log.extended2_log_name STRING extended2
CONFIG proxy.config.log.extended2_log_header STRING NULL
CONFIG proxy.config.log.separate_icp_logs INT 0
CONFIG proxy.config.log.separate_host_logs INT 0
CONFIG proxy.config.log.collation_host STRING NULL
CONFIG proxy.config.log.collation_port INT 8085
CONFIG proxy.config.log.collation_secret STRING foobar
CONFIG proxy.config.log.collation_host_tagged INT 0
CONFIG proxy.config.log.collation_retry_sec INT 5
CONFIG proxy.config.log.rolling_enabled INT 1
CONFIG proxy.config.log.rolling_interval_sec INT 86400
CONFIG proxy.config.log.rolling_offset_hr INT 0
CONFIG proxy.config.log.rolling_size_mb INT 10
CONFIG proxy.config.log.auto_delete_rolled_files INT 1
CONFIG proxy.config.log.sampling_frequency INT 1

##############################################################################
# Reverse Proxy                                                              #
##############################################################################
CONFIG proxy.config.reverse_proxy.enabled INT 1
CONFIG proxy.config.header.parse.no_host_url_redirect STRING NULL

##############################################################################
# URL Remap Rules                                                            #
##############################################################################
CONFIG proxy.config.url_remap.default_to_server_pac INT 0
CONFIG proxy.config.url_remap.default_to_server_pac_port INT -1
CONFIG proxy.config.url_remap.remap_required INT 1
CONFIG proxy.config.url_remap.pristine_host_hdr INT 1

##############################################################################
# ICP Configuration                                                          #
##############################################################################
CONFIG proxy.config.icp.enabled INT 0

##############################################################################
# Scheduled Update Configuration                                             #
##############################################################################
CONFIG proxy.config.update.enabled INT 0
CONFIG proxy.config.update.force INT 0
CONFIG proxy.config.update.retry_count INT 10
CONFIG proxy.config.update.retry_interval INT 2
CONFIG proxy.config.update.concurrent_updates INT 100

##############################################################################
# Socket send/recv buffer sizes 0 == dont call setsockopt()                  #
# out: proxy -> os connection                                                #
# in : ua -> proxy connection                                                #
##############################################################################
CONFIG proxy.config.net.sock_send_buffer_size_in INT 65536
CONFIG proxy.config.net.sock_recv_buffer_size_in INT 65536
CONFIG proxy.config.net.sock_option_flag_in INT 1
CONFIG proxy.config.net.sock_send_buffer_size_out INT 65536
CONFIG proxy.config.net.sock_recv_buffer_size_out INT 65536
CONFIG proxy.config.net.sock_option_flag_out INT 1

##############################################################################
# User Overridden Configurations Below                                       #
##############################################################################
CONFIG proxy.config.core_limit INT -1

##############################################################################
# Debugging                                                                  #
##############################################################################
CONFIG proxy.config.diags.debug.enabled INT 0
CONFIG proxy.config.diags.debug.tags STRING http.*|dns.*
CONFIG proxy.config.dump_mem_info_frequency INT 0
CONFIG proxy.config.stack_dump_enabled 0

##############################################################################
# Log any request that takes more then x number of milliseconds, needs       #
# to be > 0 to be enabled                                                    #
##############################################################################
CONFIG proxy.config.http.slow.log.threshold INT 0

##############################################################################
# Thread pool for "misc" tasks, plugins etc. 2 is a good minimum             #
##############################################################################
CONFIG proxy.config.task_threads INT 2
CONFIG proxy.config.cluster.cluster_configuration STRING cluster.config
CONFIG proxy.config.body_factory.template_sets_dir STRING /etc/trafficserver/body_factory


Re: 3.3.5: performance regression?

Posted by Reindl Harald <h....@thelounge.net>.
i tested different builds

 --enable-reclaimable-freelist --enable-linux-native-aio
 --disable-reclaimable-freelist --disable-linux-native-aio

i am also wondering about 130%-150% CPU load for always
serve the same static image right out of memory while
i would expect low to zero load for this task

Am 10.08.2013 16:30, schrieb Yongming Zhao:
> can you please test v3.3.5 with --enable-reclaimable-freelist configure option?
> 
>> has anybody compared 3.2 / 3.3 in performance?
>>
>> ab -c 200 -n 100000 http://<url>/rte/upload/logo.gif while "logo.gif" is
>> 643 bytes small and currently httpd without Trafficserver in front has
>> nearly the same perfomrance with even lower CPU
>>
>> "records.config" on both machines is identical
>> ______________________________________________________
>>
>> 3.2.5
>>
>> Total transferred:      95796163 bytes
>> HTML transferred:       64296142 bytes
>> Requests per second:    9002.97 [#/sec] (mean)
>> Time per request:       22.215 [ms] (mean)
>> Time per request:       0.111 [ms] (mean, across all concurrent requests)
>> Transfer rate:          8422.36 [Kbytes/sec] received
>> ______________________________________________________
>>
>> 3.3.5
>>
>> Total transferred:      94758456 bytes
>> HTML transferred:       64271708 bytes
>> Requests per second:    3178.58 [#/sec] (mean)
>> Time per request:       62.921 [ms] (mean)
>> Time per request:       0.315 [ms] (mean, across all concurrent requests)
>> Transfer rate:          2941.38 [Kbytes/sec] received
>> ______________________________________________________
>>
>> Apache 2.4 directly:
>>
>> Total transferred:      95899041 bytes
>> HTML transferred:       64299357 bytes
>> Requests per second:    2453.78 [#/sec] (mean)
>> Time per request:       81.507 [ms] (mean)
>> Time per request:       0.408 [ms] (mean, across all concurrent requests)
>> Transfer rate:          2298.00 [Kbytes/sec] received
>> ______________________________________________________
>>
>> [root@testserver:~]$ cat records.config
>> ##############################################################################
>> # System Variables                                                           #
>> ##############################################################################
>> CONFIG proxy.config.proxy_name STRING testserver.rhsoft.net
>> CONFIG proxy.config.config_dir STRING /etc/trafficserver
>> CONFIG proxy.config.proxy_binary_opts STRING -M
>> CONFIG proxy.config.temp_dir STRING /tmp
>> CONFIG proxy.config.alarm_email STRING ats
>> CONFIG proxy.config.syslog_facility STRING LOG_DAEMON
>> CONFIG proxy.config.output.logfile STRING traffic.out
>> CONFIG proxy.config.snapshot_dir STRING snapshots
>> CONFIG proxy.config.system.mmap_max INT 2097152
>>
>> ##############################################################################
>> # Main threads configuration (worker threads). Also see configurations for   #
>> # SSL threads, disk I/O threads and task threads in their respective areas   #
>> ##############################################################################
>> CONFIG proxy.config.exec_thread.autoconfig INT 1
>> CONFIG proxy.config.accept_threads INT 1
>>
>> ##############################################################################
>> # Local Manager                                                              #
>> ##############################################################################
>> CONFIG proxy.config.admin.admin_user STRING admin
>> CONFIG proxy.config.admin.number_config_bak INT 0
>> CONFIG proxy.config.admin.user_id STRING ats
>>
>> ##############################################################################
>> # Process Manager                                                            #
>> ##############################################################################
>> CONFIG proxy.config.admin.autoconf_port INT 8083
>> CONFIG proxy.config.process_manager.mgmt_port INT 8084
>>
>> ##############################################################################
>> # HTTP Engine                                                                #
>> ##############################################################################
>> LOCAL proxy.local.incoming_ip_to_bind STRING 84.113.45.81
>> CONFIG proxy.config.http.server_ports STRING 80
>> CONFIG proxy.config.http.connect_ports STRING 80
>> CONFIG proxy.config.http.insert_request_via_str INT 0
>> CONFIG proxy.config.http.insert_response_via_str INT 0
>> CONFIG proxy.config.http.response_server_enabled INT 0
>> CONFIG proxy.config.http.insert_age_in_response INT 1
>> CONFIG proxy.config.http.enable_url_expandomatic INT 0
>> CONFIG proxy.config.http.no_dns_just_forward_to_parent INT 0
>> CONFIG proxy.config.http.uncacheable_requests_bypass_parent INT 0
>> CONFIG proxy.config.http.keep_alive_enabled_in INT 1
>> CONFIG proxy.config.http.keep_alive_enabled_out INT 0
>> CONFIG proxy.config.http.chunking_enabled INT 1
>> CONFIG proxy.config.http.send_http11_requests INT 1
>> CONFIG proxy.config.http.share_server_sessions INT 1
>> CONFIG proxy.config.http.origin_server_pipeline INT 1
>> CONFIG proxy.config.http.user_agent_pipeline INT 8
>> CONFIG proxy.config.http.referer_filter INT 0
>> CONFIG proxy.config.http.accept_unknown_methods INT 0
>>
>> ##############################################################################
>> # parent proxy configuration                                                 #
>> ##############################################################################
>> CONFIG proxy.config.http.parent_proxy_routing_enable INT 0
>>
>> ##############################################################################
>> # HTTP connection timeouts (secs)                                            #
>> # out: proxy -> origin server connection                                     #
>> # in : ua -> proxy connection                                                #
>> ##############################################################################
>> CONFIG proxy.config.http.keep_alive_no_activity_timeout_in INT 1
>> CONFIG proxy.config.http.keep_alive_no_activity_timeout_out INT 0
>> CONFIG proxy.config.http.transaction_no_activity_timeout_in INT 60
>> CONFIG proxy.config.http.transaction_no_activity_timeout_out INT 60
>> CONFIG proxy.config.http.transaction_active_timeout_in INT 3600
>> CONFIG proxy.config.http.transaction_active_timeout_out INT 0
>> CONFIG proxy.config.http.accept_no_activity_timeout INT 1
>> CONFIG proxy.config.http.background_fill_active_timeout INT 60
>> CONFIG proxy.config.http.background_fill_completed_threshold FLOAT 0.000000
>>
>> ##############################################################################
>> # origin server connect attempts                                             #
>> ##############################################################################
>> CONFIG proxy.config.http.connect_attempts_max_retries INT 10
>> CONFIG proxy.config.http.connect_attempts_max_retries_dead_server INT 10
>> CONFIG proxy.config.http.connect_attempts_rr_retries INT 10
>> CONFIG proxy.config.http.connect_attempts_timeout INT 30
>> CONFIG proxy.config.http.post_connect_attempts_timeout INT 1800
>> CONFIG proxy.config.http.down_server.cache_time INT 5
>> CONFIG proxy.config.http.down_server.abort_threshold INT 30
>>
>> ##############################################################################
>> # congestion control                                                         #
>> ##############################################################################
>> CONFIG proxy.config.http.congestion_control.enabled INT 0
>>
>> ##############################################################################
>> # negative response caching                                                  #
>> ##############################################################################
>> CONFIG proxy.config.http.negative_caching_enabled INT 1
>> CONFIG proxy.config.http.negative_caching_lifetime INT 60
>>
>> ##############################################################################
>> # proxy users variables                                                      #
>> ##############################################################################
>> CONFIG proxy.config.http.anonymize_remove_from INT 0
>> CONFIG proxy.config.http.anonymize_remove_referer INT 0
>> CONFIG proxy.config.http.anonymize_remove_user_agent INT 0
>> CONFIG proxy.config.http.anonymize_remove_cookie INT 0
>> CONFIG proxy.config.http.anonymize_remove_client_ip INT 0
>> CONFIG proxy.config.http.anonymize_insert_client_ip INT 0
>> CONFIG proxy.config.http.anonymize_other_header_list STRING NULL
>> CONFIG proxy.config.http.insert_squid_x_forwarded_for INT 1
>>
>> ##############################################################################
>> # security                                                                   #
>> ##############################################################################
>> CONFIG proxy.config.http.push_method_enabled INT 0
>>
>> ##############################################################################
>> # cache control                                                              #
>> ##############################################################################
>> CONFIG proxy.config.http.normalize_ae_gzip INT 1
>> CONFIG proxy.config.http.cache.http INT 1
>> CONFIG proxy.config.http.cache.cache_responses_to_cookies INT 3
>> CONFIG proxy.config.http.cache.cache_urls_that_look_dynamic INT 1
>> CONFIG proxy.config.http.cache.ims_on_client_no_cache INT 1
>> CONFIG proxy.config.http.cache.ignore_client_cc_max_age INT 0
>> CONFIG proxy.config.http.cache.ignore_client_no_cache INT 0
>> CONFIG proxy.config.http.cache.ignore_accept_mismatch INT 1
>> CONFIG proxy.config.http.cache.ignore_accept_language_mismatch INT 1
>> CONFIG proxy.config.http.cache.ignore_accept_charset_mismatch INT 1
>> CONFIG proxy.config.http.cache.ignore_server_no_cache INT 0
>> CONFIG proxy.config.http.cache.ignore_authentication INT 0
>> CONFIG proxy.config.http.cache.enable_default_vary_headers INT 0
>> CONFIG proxy.config.http.cache.when_to_revalidate INT 0
>> CONFIG proxy.config.http.cache.when_to_add_no_cache_to_msie_requests INT 0
>> CONFIG proxy.config.http.cache.required_headers INT 0
>> CONFIG proxy.config.http.cache.max_stale_age INT 1800
>> CONFIG proxy.config.http.cache.range.lookup INT 1
>> CONFIG proxy.config.cache.vary_on_user_agent INT 0
>>
>> ##############################################################################
>> # heuristic expiration                                                       #
>> ##############################################################################
>> CONFIG proxy.config.http.cache.heuristic_min_lifetime INT 60
>> CONFIG proxy.config.http.cache.heuristic_max_lifetime INT 60
>> CONFIG proxy.config.http.cache.heuristic_lm_factor FLOAT 0.100000
>> CONFIG proxy.config.http.cache.fuzz.time INT 60
>> CONFIG proxy.config.http.cache.fuzz.probability FLOAT 0.005000
>>
>> ##############################################################################
>> # dynamic content & content negotiation                                      #
>> ##############################################################################
>> CONFIG proxy.config.http.cache.vary_default_text STRING Accept-Encoding
>> CONFIG proxy.config.http.cache.vary_default_images STRING NULL
>> CONFIG proxy.config.http.cache.vary_default_other STRING NULL
>>
>> ##############################################################################
>> # The HTTP stats are expensive, turn off you dont need them                  #
>> ##############################################################################
>> CONFIG proxy.config.http.enable_http_stats INT 0
>>
>> ##############################################################################
>> # Customizable User Response Pages                                           #
>> ##############################################################################
>> CONFIG proxy.config.body_factory.enable_customizations INT 1
>> CONFIG proxy.config.body_factory.enable_logging INT 0
>> CONFIG proxy.config.body_factory.response_suppression_mode INT 0
>>
>> ##############################################################################
>> # Net Subsystem                                                              #
>> ##############################################################################
>> CONFIG proxy.config.net.connections_throttle INT 30000
>> CONFIG proxy.config.net.defer_accept INT 1
>>
>> ##############################################################################
>> # Cluster Subsystem                                                          #
>> ##############################################################################
>> LOCAL proxy.local.cluster.type INT 3
>>
>> ##############################################################################
>> # Cache                                                                      #
>> ##############################################################################
>> CONFIG proxy.config.cache.permit.pinning INT 0
>> CONFIG proxy.config.cache.ram_cache.size INT 2048
>> CONFIG proxy.config.cache.ram_cache_cutoff INT 4194304
>> CONFIG proxy.config.cache.ram_cache.algorithm INT 0
>> CONFIG proxy.config.cache.ram_cache.use_seen_filter INT 0
>> CONFIG proxy.config.cache.ram_cache.compress INT 0
>> CONFIG proxy.config.cache.limits.http.max_alts INT 10
>> CONFIG proxy.config.cache.target_fragment_size INT 262144
>> CONFIG proxy.config.cache.max_doc_size INT 0
>> CONFIG proxy.config.cache.enable_read_while_writer INT 1
>> CONFIG proxy.config.connection_collapsing.hashtable_enabled INT 1
>> CONFIG proxy.config.cache.min_average_object_size INT 8000
>> CONFIG proxy.config.cache.threads_per_disk INT 8
>> CONFIG proxy.config.cache.mutex_retry_delay INT 2
>>
>> ##############################################################################
>> # DNS                                                                        #
>> ##############################################################################
>> CONFIG proxy.config.dns.search_default_domains INT 1
>> CONFIG proxy.config.dns.splitDNS.enabled INT 0
>> CONFIG proxy.config.dns.max_dns_in_flight INT 2048
>> CONFIG proxy.config.dns.url_expansions STRING NULL
>> CONFIG proxy.config.dns.round_robin_nameservers INT 0
>> CONFIG proxy.config.dns.nameservers STRING 127.0.0.1
>> CONFIG proxy.config.dns.resolv_conf STRING NULL
>> CONFIG proxy.config.dns.validate_query_name INT 0
>>
>> ##############################################################################
>> # HostDB                                                                     #
>> ##############################################################################
>> CONFIG proxy.config.hostdb.size INT 50000
>> CONFIG proxy.config.hostdb.storage_size INT 14680064
>> CONFIG proxy.config.hostdb.ttl_mode INT 0
>> CONFIG proxy.config.hostdb.timeout INT 1440
>> CONFIG proxy.config.hostdb.strict_round_robin INT 0
>>
>> ##############################################################################
>> # Logging Config                                                             #
>> #                                                                            #
>> # 0: no logging at all                                                       #
>> # 1: log errors only                                                         #
>> # 2: log transactions only                                                   #
>> # 3: full logging (errors + transactions)                                    #
>> ##############################################################################
>> LOCAL proxy.local.log.collation_mode INT 0
>> CONFIG proxy.config.log.logging_enabled INT 1
>> CONFIG proxy.config.log.max_secs_per_buffer INT 5
>> CONFIG proxy.config.log.max_space_mb_for_logs INT 25000
>> CONFIG proxy.config.log.max_space_mb_for_orphan_logs INT 25
>> CONFIG proxy.config.log.max_space_mb_headroom INT 1000
>> CONFIG proxy.config.log.hostname STRING localhost
>> CONFIG proxy.config.log.logfile_dir STRING /var/log/trafficserver
>> CONFIG proxy.config.log.logfile_perm STRING rw-rw----
>> CONFIG proxy.config.log.custom_logs_enabled INT 0
>> CONFIG proxy.config.log.squid_log_enabled INT 0
>> CONFIG proxy.config.log.squid_log_is_ascii INT 0
>> CONFIG proxy.config.log.squid_log_name STRING squid
>> CONFIG proxy.config.log.squid_log_header STRING NULL
>> CONFIG proxy.config.log.common_log_enabled INT 0
>> CONFIG proxy.config.log.common_log_is_ascii INT 1
>> CONFIG proxy.config.log.common_log_name STRING common
>> CONFIG proxy.config.log.common_log_header STRING NULL
>> CONFIG proxy.config.log.extended_log_enabled INT 0
>> CONFIG proxy.config.log.extended_log_is_ascii INT 0
>> CONFIG proxy.config.log.extended_log_name STRING extended
>> CONFIG proxy.config.log.extended_log_header STRING NULL
>> CONFIG proxy.config.log.extended2_log_enabled INT 0
>> CONFIG proxy.config.log.extended2_log_is_ascii INT 1
>> CONFIG proxy.config.log.extended2_log_name STRING extended2
>> CONFIG proxy.config.log.extended2_log_header STRING NULL
>> CONFIG proxy.config.log.separate_icp_logs INT 0
>> CONFIG proxy.config.log.separate_host_logs INT 0
>> CONFIG proxy.config.log.collation_host STRING NULL
>> CONFIG proxy.config.log.collation_port INT 8085
>> CONFIG proxy.config.log.collation_secret STRING foobar
>> CONFIG proxy.config.log.collation_host_tagged INT 0
>> CONFIG proxy.config.log.collation_retry_sec INT 5
>> CONFIG proxy.config.log.rolling_enabled INT 1
>> CONFIG proxy.config.log.rolling_interval_sec INT 86400
>> CONFIG proxy.config.log.rolling_offset_hr INT 0
>> CONFIG proxy.config.log.rolling_size_mb INT 10
>> CONFIG proxy.config.log.auto_delete_rolled_files INT 1
>> CONFIG proxy.config.log.sampling_frequency INT 1
>>
>> ##############################################################################
>> # Reverse Proxy                                                              #
>> ##############################################################################
>> CONFIG proxy.config.reverse_proxy.enabled INT 1
>> CONFIG proxy.config.header.parse.no_host_url_redirect STRING NULL
>>
>> ##############################################################################
>> # URL Remap Rules                                                            #
>> ##############################################################################
>> CONFIG proxy.config.url_remap.default_to_server_pac INT 0
>> CONFIG proxy.config.url_remap.default_to_server_pac_port INT -1
>> CONFIG proxy.config.url_remap.remap_required INT 1
>> CONFIG proxy.config.url_remap.pristine_host_hdr INT 1
>>
>> ##############################################################################
>> # ICP Configuration                                                          #
>> ##############################################################################
>> CONFIG proxy.config.icp.enabled INT 0
>>
>> ##############################################################################
>> # Scheduled Update Configuration                                             #
>> ##############################################################################
>> CONFIG proxy.config.update.enabled INT 0
>> CONFIG proxy.config.update.force INT 0
>> CONFIG proxy.config.update.retry_count INT 10
>> CONFIG proxy.config.update.retry_interval INT 2
>> CONFIG proxy.config.update.concurrent_updates INT 100
>>
>> ##############################################################################
>> # Socket send/recv buffer sizes 0 == dont call setsockopt()                  #
>> # out: proxy -> os connection                                                #
>> # in : ua -> proxy connection                                                #
>> ##############################################################################
>> CONFIG proxy.config.net.sock_send_buffer_size_in INT 65536
>> CONFIG proxy.config.net.sock_recv_buffer_size_in INT 65536
>> CONFIG proxy.config.net.sock_option_flag_in INT 1
>> CONFIG proxy.config.net.sock_send_buffer_size_out INT 65536
>> CONFIG proxy.config.net.sock_recv_buffer_size_out INT 65536
>> CONFIG proxy.config.net.sock_option_flag_out INT 1
>>
>> ##############################################################################
>> # User Overridden Configurations Below                                       #
>> ##############################################################################
>> CONFIG proxy.config.core_limit INT -1
>>
>> ##############################################################################
>> # Debugging                                                                  #
>> ##############################################################################
>> CONFIG proxy.config.diags.debug.enabled INT 0
>> CONFIG proxy.config.diags.debug.tags STRING http.*|dns.*
>> CONFIG proxy.config.dump_mem_info_frequency INT 0
>> CONFIG proxy.config.stack_dump_enabled 0
>>
>> ##############################################################################
>> # Log any request that takes more then x number of milliseconds, needs       #
>> # to be > 0 to be enabled                                                    #
>> ##############################################################################
>> CONFIG proxy.config.http.slow.log.threshold INT 0
>>
>> ##############################################################################
>> # Thread pool for "misc" tasks, plugins etc. 2 is a good minimum             #
>> ##############################################################################
>> CONFIG proxy.config.task_threads INT 2
>> CONFIG proxy.config.cluster.cluster_configuration STRING cluster.config
>> CONFIG proxy.config.body_factory.template_sets_dir STRING /etc/trafficserver/body_factory


Re: 3.3.5: performance regression?

Posted by Yongming Zhao <mi...@gmail.com>.
can you please test v3.3.5 with --enable-reclaimable-freelist configure option?

在 2013-8-10,下午9:21,Reindl Harald <h....@thelounge.net> 写道:

> has anybody compared 3.2 / 3.3 in performance?
> 
> ab -c 200 -n 100000 http://<url>/rte/upload/logo.gif while "logo.gif" is
> 643 bytes small and currently httpd without Trafficserver in front has
> nearly the same perfomrance with even lower CPU
> 
> "records.config" on both machines is identical
> ______________________________________________________
> 
> 3.2.5
> 
> Total transferred:      95796163 bytes
> HTML transferred:       64296142 bytes
> Requests per second:    9002.97 [#/sec] (mean)
> Time per request:       22.215 [ms] (mean)
> Time per request:       0.111 [ms] (mean, across all concurrent requests)
> Transfer rate:          8422.36 [Kbytes/sec] received
> ______________________________________________________
> 
> 3.3.5
> 
> Total transferred:      94758456 bytes
> HTML transferred:       64271708 bytes
> Requests per second:    3178.58 [#/sec] (mean)
> Time per request:       62.921 [ms] (mean)
> Time per request:       0.315 [ms] (mean, across all concurrent requests)
> Transfer rate:          2941.38 [Kbytes/sec] received
> ______________________________________________________
> 
> Apache 2.4 directly:
> 
> Total transferred:      95899041 bytes
> HTML transferred:       64299357 bytes
> Requests per second:    2453.78 [#/sec] (mean)
> Time per request:       81.507 [ms] (mean)
> Time per request:       0.408 [ms] (mean, across all concurrent requests)
> Transfer rate:          2298.00 [Kbytes/sec] received
> ______________________________________________________
> 
> [root@testserver:~]$ cat records.config
> ##############################################################################
> # System Variables                                                           #
> ##############################################################################
> CONFIG proxy.config.proxy_name STRING testserver.rhsoft.net
> CONFIG proxy.config.config_dir STRING /etc/trafficserver
> CONFIG proxy.config.proxy_binary_opts STRING -M
> CONFIG proxy.config.temp_dir STRING /tmp
> CONFIG proxy.config.alarm_email STRING ats
> CONFIG proxy.config.syslog_facility STRING LOG_DAEMON
> CONFIG proxy.config.output.logfile STRING traffic.out
> CONFIG proxy.config.snapshot_dir STRING snapshots
> CONFIG proxy.config.system.mmap_max INT 2097152
> 
> ##############################################################################
> # Main threads configuration (worker threads). Also see configurations for   #
> # SSL threads, disk I/O threads and task threads in their respective areas   #
> ##############################################################################
> CONFIG proxy.config.exec_thread.autoconfig INT 1
> CONFIG proxy.config.accept_threads INT 1
> 
> ##############################################################################
> # Local Manager                                                              #
> ##############################################################################
> CONFIG proxy.config.admin.admin_user STRING admin
> CONFIG proxy.config.admin.number_config_bak INT 0
> CONFIG proxy.config.admin.user_id STRING ats
> 
> ##############################################################################
> # Process Manager                                                            #
> ##############################################################################
> CONFIG proxy.config.admin.autoconf_port INT 8083
> CONFIG proxy.config.process_manager.mgmt_port INT 8084
> 
> ##############################################################################
> # HTTP Engine                                                                #
> ##############################################################################
> LOCAL proxy.local.incoming_ip_to_bind STRING 84.113.45.81
> CONFIG proxy.config.http.server_ports STRING 80
> CONFIG proxy.config.http.connect_ports STRING 80
> CONFIG proxy.config.http.insert_request_via_str INT 0
> CONFIG proxy.config.http.insert_response_via_str INT 0
> CONFIG proxy.config.http.response_server_enabled INT 0
> CONFIG proxy.config.http.insert_age_in_response INT 1
> CONFIG proxy.config.http.enable_url_expandomatic INT 0
> CONFIG proxy.config.http.no_dns_just_forward_to_parent INT 0
> CONFIG proxy.config.http.uncacheable_requests_bypass_parent INT 0
> CONFIG proxy.config.http.keep_alive_enabled_in INT 1
> CONFIG proxy.config.http.keep_alive_enabled_out INT 0
> CONFIG proxy.config.http.chunking_enabled INT 1
> CONFIG proxy.config.http.send_http11_requests INT 1
> CONFIG proxy.config.http.share_server_sessions INT 1
> CONFIG proxy.config.http.origin_server_pipeline INT 1
> CONFIG proxy.config.http.user_agent_pipeline INT 8
> CONFIG proxy.config.http.referer_filter INT 0
> CONFIG proxy.config.http.accept_unknown_methods INT 0
> 
> ##############################################################################
> # parent proxy configuration                                                 #
> ##############################################################################
> CONFIG proxy.config.http.parent_proxy_routing_enable INT 0
> 
> ##############################################################################
> # HTTP connection timeouts (secs)                                            #
> # out: proxy -> origin server connection                                     #
> # in : ua -> proxy connection                                                #
> ##############################################################################
> CONFIG proxy.config.http.keep_alive_no_activity_timeout_in INT 1
> CONFIG proxy.config.http.keep_alive_no_activity_timeout_out INT 0
> CONFIG proxy.config.http.transaction_no_activity_timeout_in INT 60
> CONFIG proxy.config.http.transaction_no_activity_timeout_out INT 60
> CONFIG proxy.config.http.transaction_active_timeout_in INT 3600
> CONFIG proxy.config.http.transaction_active_timeout_out INT 0
> CONFIG proxy.config.http.accept_no_activity_timeout INT 1
> CONFIG proxy.config.http.background_fill_active_timeout INT 60
> CONFIG proxy.config.http.background_fill_completed_threshold FLOAT 0.000000
> 
> ##############################################################################
> # origin server connect attempts                                             #
> ##############################################################################
> CONFIG proxy.config.http.connect_attempts_max_retries INT 10
> CONFIG proxy.config.http.connect_attempts_max_retries_dead_server INT 10
> CONFIG proxy.config.http.connect_attempts_rr_retries INT 10
> CONFIG proxy.config.http.connect_attempts_timeout INT 30
> CONFIG proxy.config.http.post_connect_attempts_timeout INT 1800
> CONFIG proxy.config.http.down_server.cache_time INT 5
> CONFIG proxy.config.http.down_server.abort_threshold INT 30
> 
> ##############################################################################
> # congestion control                                                         #
> ##############################################################################
> CONFIG proxy.config.http.congestion_control.enabled INT 0
> 
> ##############################################################################
> # negative response caching                                                  #
> ##############################################################################
> CONFIG proxy.config.http.negative_caching_enabled INT 1
> CONFIG proxy.config.http.negative_caching_lifetime INT 60
> 
> ##############################################################################
> # proxy users variables                                                      #
> ##############################################################################
> CONFIG proxy.config.http.anonymize_remove_from INT 0
> CONFIG proxy.config.http.anonymize_remove_referer INT 0
> CONFIG proxy.config.http.anonymize_remove_user_agent INT 0
> CONFIG proxy.config.http.anonymize_remove_cookie INT 0
> CONFIG proxy.config.http.anonymize_remove_client_ip INT 0
> CONFIG proxy.config.http.anonymize_insert_client_ip INT 0
> CONFIG proxy.config.http.anonymize_other_header_list STRING NULL
> CONFIG proxy.config.http.insert_squid_x_forwarded_for INT 1
> 
> ##############################################################################
> # security                                                                   #
> ##############################################################################
> CONFIG proxy.config.http.push_method_enabled INT 0
> 
> ##############################################################################
> # cache control                                                              #
> ##############################################################################
> CONFIG proxy.config.http.normalize_ae_gzip INT 1
> CONFIG proxy.config.http.cache.http INT 1
> CONFIG proxy.config.http.cache.cache_responses_to_cookies INT 3
> CONFIG proxy.config.http.cache.cache_urls_that_look_dynamic INT 1
> CONFIG proxy.config.http.cache.ims_on_client_no_cache INT 1
> CONFIG proxy.config.http.cache.ignore_client_cc_max_age INT 0
> CONFIG proxy.config.http.cache.ignore_client_no_cache INT 0
> CONFIG proxy.config.http.cache.ignore_accept_mismatch INT 1
> CONFIG proxy.config.http.cache.ignore_accept_language_mismatch INT 1
> CONFIG proxy.config.http.cache.ignore_accept_charset_mismatch INT 1
> CONFIG proxy.config.http.cache.ignore_server_no_cache INT 0
> CONFIG proxy.config.http.cache.ignore_authentication INT 0
> CONFIG proxy.config.http.cache.enable_default_vary_headers INT 0
> CONFIG proxy.config.http.cache.when_to_revalidate INT 0
> CONFIG proxy.config.http.cache.when_to_add_no_cache_to_msie_requests INT 0
> CONFIG proxy.config.http.cache.required_headers INT 0
> CONFIG proxy.config.http.cache.max_stale_age INT 1800
> CONFIG proxy.config.http.cache.range.lookup INT 1
> CONFIG proxy.config.cache.vary_on_user_agent INT 0
> 
> ##############################################################################
> # heuristic expiration                                                       #
> ##############################################################################
> CONFIG proxy.config.http.cache.heuristic_min_lifetime INT 60
> CONFIG proxy.config.http.cache.heuristic_max_lifetime INT 60
> CONFIG proxy.config.http.cache.heuristic_lm_factor FLOAT 0.100000
> CONFIG proxy.config.http.cache.fuzz.time INT 60
> CONFIG proxy.config.http.cache.fuzz.probability FLOAT 0.005000
> 
> ##############################################################################
> # dynamic content & content negotiation                                      #
> ##############################################################################
> CONFIG proxy.config.http.cache.vary_default_text STRING Accept-Encoding
> CONFIG proxy.config.http.cache.vary_default_images STRING NULL
> CONFIG proxy.config.http.cache.vary_default_other STRING NULL
> 
> ##############################################################################
> # The HTTP stats are expensive, turn off you dont need them                  #
> ##############################################################################
> CONFIG proxy.config.http.enable_http_stats INT 0
> 
> ##############################################################################
> # Customizable User Response Pages                                           #
> ##############################################################################
> CONFIG proxy.config.body_factory.enable_customizations INT 1
> CONFIG proxy.config.body_factory.enable_logging INT 0
> CONFIG proxy.config.body_factory.response_suppression_mode INT 0
> 
> ##############################################################################
> # Net Subsystem                                                              #
> ##############################################################################
> CONFIG proxy.config.net.connections_throttle INT 30000
> CONFIG proxy.config.net.defer_accept INT 1
> 
> ##############################################################################
> # Cluster Subsystem                                                          #
> ##############################################################################
> LOCAL proxy.local.cluster.type INT 3
> 
> ##############################################################################
> # Cache                                                                      #
> ##############################################################################
> CONFIG proxy.config.cache.permit.pinning INT 0
> CONFIG proxy.config.cache.ram_cache.size INT 2048
> CONFIG proxy.config.cache.ram_cache_cutoff INT 4194304
> CONFIG proxy.config.cache.ram_cache.algorithm INT 0
> CONFIG proxy.config.cache.ram_cache.use_seen_filter INT 0
> CONFIG proxy.config.cache.ram_cache.compress INT 0
> CONFIG proxy.config.cache.limits.http.max_alts INT 10
> CONFIG proxy.config.cache.target_fragment_size INT 262144
> CONFIG proxy.config.cache.max_doc_size INT 0
> CONFIG proxy.config.cache.enable_read_while_writer INT 1
> CONFIG proxy.config.connection_collapsing.hashtable_enabled INT 1
> CONFIG proxy.config.cache.min_average_object_size INT 8000
> CONFIG proxy.config.cache.threads_per_disk INT 8
> CONFIG proxy.config.cache.mutex_retry_delay INT 2
> 
> ##############################################################################
> # DNS                                                                        #
> ##############################################################################
> CONFIG proxy.config.dns.search_default_domains INT 1
> CONFIG proxy.config.dns.splitDNS.enabled INT 0
> CONFIG proxy.config.dns.max_dns_in_flight INT 2048
> CONFIG proxy.config.dns.url_expansions STRING NULL
> CONFIG proxy.config.dns.round_robin_nameservers INT 0
> CONFIG proxy.config.dns.nameservers STRING 127.0.0.1
> CONFIG proxy.config.dns.resolv_conf STRING NULL
> CONFIG proxy.config.dns.validate_query_name INT 0
> 
> ##############################################################################
> # HostDB                                                                     #
> ##############################################################################
> CONFIG proxy.config.hostdb.size INT 50000
> CONFIG proxy.config.hostdb.storage_size INT 14680064
> CONFIG proxy.config.hostdb.ttl_mode INT 0
> CONFIG proxy.config.hostdb.timeout INT 1440
> CONFIG proxy.config.hostdb.strict_round_robin INT 0
> 
> ##############################################################################
> # Logging Config                                                             #
> #                                                                            #
> # 0: no logging at all                                                       #
> # 1: log errors only                                                         #
> # 2: log transactions only                                                   #
> # 3: full logging (errors + transactions)                                    #
> ##############################################################################
> LOCAL proxy.local.log.collation_mode INT 0
> CONFIG proxy.config.log.logging_enabled INT 1
> CONFIG proxy.config.log.max_secs_per_buffer INT 5
> CONFIG proxy.config.log.max_space_mb_for_logs INT 25000
> CONFIG proxy.config.log.max_space_mb_for_orphan_logs INT 25
> CONFIG proxy.config.log.max_space_mb_headroom INT 1000
> CONFIG proxy.config.log.hostname STRING localhost
> CONFIG proxy.config.log.logfile_dir STRING /var/log/trafficserver
> CONFIG proxy.config.log.logfile_perm STRING rw-rw----
> CONFIG proxy.config.log.custom_logs_enabled INT 0
> CONFIG proxy.config.log.squid_log_enabled INT 0
> CONFIG proxy.config.log.squid_log_is_ascii INT 0
> CONFIG proxy.config.log.squid_log_name STRING squid
> CONFIG proxy.config.log.squid_log_header STRING NULL
> CONFIG proxy.config.log.common_log_enabled INT 0
> CONFIG proxy.config.log.common_log_is_ascii INT 1
> CONFIG proxy.config.log.common_log_name STRING common
> CONFIG proxy.config.log.common_log_header STRING NULL
> CONFIG proxy.config.log.extended_log_enabled INT 0
> CONFIG proxy.config.log.extended_log_is_ascii INT 0
> CONFIG proxy.config.log.extended_log_name STRING extended
> CONFIG proxy.config.log.extended_log_header STRING NULL
> CONFIG proxy.config.log.extended2_log_enabled INT 0
> CONFIG proxy.config.log.extended2_log_is_ascii INT 1
> CONFIG proxy.config.log.extended2_log_name STRING extended2
> CONFIG proxy.config.log.extended2_log_header STRING NULL
> CONFIG proxy.config.log.separate_icp_logs INT 0
> CONFIG proxy.config.log.separate_host_logs INT 0
> CONFIG proxy.config.log.collation_host STRING NULL
> CONFIG proxy.config.log.collation_port INT 8085
> CONFIG proxy.config.log.collation_secret STRING foobar
> CONFIG proxy.config.log.collation_host_tagged INT 0
> CONFIG proxy.config.log.collation_retry_sec INT 5
> CONFIG proxy.config.log.rolling_enabled INT 1
> CONFIG proxy.config.log.rolling_interval_sec INT 86400
> CONFIG proxy.config.log.rolling_offset_hr INT 0
> CONFIG proxy.config.log.rolling_size_mb INT 10
> CONFIG proxy.config.log.auto_delete_rolled_files INT 1
> CONFIG proxy.config.log.sampling_frequency INT 1
> 
> ##############################################################################
> # Reverse Proxy                                                              #
> ##############################################################################
> CONFIG proxy.config.reverse_proxy.enabled INT 1
> CONFIG proxy.config.header.parse.no_host_url_redirect STRING NULL
> 
> ##############################################################################
> # URL Remap Rules                                                            #
> ##############################################################################
> CONFIG proxy.config.url_remap.default_to_server_pac INT 0
> CONFIG proxy.config.url_remap.default_to_server_pac_port INT -1
> CONFIG proxy.config.url_remap.remap_required INT 1
> CONFIG proxy.config.url_remap.pristine_host_hdr INT 1
> 
> ##############################################################################
> # ICP Configuration                                                          #
> ##############################################################################
> CONFIG proxy.config.icp.enabled INT 0
> 
> ##############################################################################
> # Scheduled Update Configuration                                             #
> ##############################################################################
> CONFIG proxy.config.update.enabled INT 0
> CONFIG proxy.config.update.force INT 0
> CONFIG proxy.config.update.retry_count INT 10
> CONFIG proxy.config.update.retry_interval INT 2
> CONFIG proxy.config.update.concurrent_updates INT 100
> 
> ##############################################################################
> # Socket send/recv buffer sizes 0 == dont call setsockopt()                  #
> # out: proxy -> os connection                                                #
> # in : ua -> proxy connection                                                #
> ##############################################################################
> CONFIG proxy.config.net.sock_send_buffer_size_in INT 65536
> CONFIG proxy.config.net.sock_recv_buffer_size_in INT 65536
> CONFIG proxy.config.net.sock_option_flag_in INT 1
> CONFIG proxy.config.net.sock_send_buffer_size_out INT 65536
> CONFIG proxy.config.net.sock_recv_buffer_size_out INT 65536
> CONFIG proxy.config.net.sock_option_flag_out INT 1
> 
> ##############################################################################
> # User Overridden Configurations Below                                       #
> ##############################################################################
> CONFIG proxy.config.core_limit INT -1
> 
> ##############################################################################
> # Debugging                                                                  #
> ##############################################################################
> CONFIG proxy.config.diags.debug.enabled INT 0
> CONFIG proxy.config.diags.debug.tags STRING http.*|dns.*
> CONFIG proxy.config.dump_mem_info_frequency INT 0
> CONFIG proxy.config.stack_dump_enabled 0
> 
> ##############################################################################
> # Log any request that takes more then x number of milliseconds, needs       #
> # to be > 0 to be enabled                                                    #
> ##############################################################################
> CONFIG proxy.config.http.slow.log.threshold INT 0
> 
> ##############################################################################
> # Thread pool for "misc" tasks, plugins etc. 2 is a good minimum             #
> ##############################################################################
> CONFIG proxy.config.task_threads INT 2
> CONFIG proxy.config.cluster.cluster_configuration STRING cluster.config
> CONFIG proxy.config.body_factory.template_sets_dir STRING /etc/trafficserver/body_factory
> 


Re: 3.3.5: performance regression?

Posted by Reindl Harald <h....@thelounge.net>.

Am 10.08.2013 22:24, schrieb Leif Hedstrom:
> On Aug 10, 2013, at 1:08 PM, Reindl Harald <h....@thelounge.net> wrote:
> 
>> Am 10.08.2013 19:47, schrieb Reindl Harald:
>>> i am currently working at my F18 SPEC-file to reflect the latest
>>> changes in my packaging and rebuild 3.2.5 ASAP on Fedora
>>> 19 so that "yum update" and "yum downgrade" gives a better picture
>>>
>>> but i doubt that the 3 years old XEON at the company will
>>> outperform the one year old IvyBdrige at home with the
>>> same environment, benchmarks besides ATS are compareable
>>>
>>> we will see
>>
>> Am 10.08.2013 19:37, schrieb Leif Hedstrom:
>>> Yeah I've tested it with my normal perf regressions, and 3.3.5 was
>>> the same as 3.2.4. In my small object test I get 160,000 qps
>>
>> on what hardware straight from hell do you get 160 thousand qps?
>> however, back to topic...…
> 
> model name	: Intel(R) Core(TM) i7 CPU         920  @ 2.67GHz
> 
> I believe Bryan has clocked it at close to 300,000 QPS on modern dual socket machines

hmmmm - if i find enough spare time i will test ATS on teh host-setup
instead the VM, not that i ever will use bare-metal servers, but
i am interested :-)

>> ____________________________________________________________________________
>>
>> OK, sorry for the noise, that's why there was a "?" in the subject
>> same virtual machine with trafficserver-3.2.5-3.fc19.20130810.rh.x86_64
>>
>> Total transferred:      94732065 bytes
>> HTML transferred:       64253704 bytes
>> Requests per second:    3206.60 [#/sec] (mean)
>> Time per request:       62.371 [ms] (mean)
>> Time per request:       0.312 [ms] (mean, across all concurrent requests)
>> Transfer rate:          2966.48 [Kbytes/sec] received
>  
> I have no idea at this moment, but I'll double check when I get home. So I understand, you get 90k QPS with 3.2.4 and 3k QPS with 3.3.5 ?

no, 3k QPS with both on the same VM
it's not the ATS version as thought

90k QPS are impossible here, at least not with a network-stack betweens ATS and "ab"

> One thing, did you try clearing the cache after upgrading from 3.3.5? 

yes, i learned to delete all cache files und on the production machine
with raw disk dd if=/dev/zero of=/dev/sdc bs=1M count=50 before start
with a changed version

> As for virtualization, I measure around 5-10x worse performance on virtualization vs bare metal.
> I've tested this on many setups (including AWS), and I've verified it on ATS, Varnish and Nginx
> (they all see the same degradation).

we are 100% virtualized for a lot of reasons and it seems the difference here is between
VMware ESXi (bare-metal hypervisor) and VMware Workstation (hosted virtualization) which
in no tests execpt http-proxy made such a big difference over years

most likely the virtual network bare metal versus bridged on a Linux host
however, i am still impressed about the difference and the decision to take
money in the hands for the vSphere cluster seems to be once more confirmed


Re: 3.3.5: performance regression?

Posted by Leif Hedstrom <zw...@apache.org>.
On Aug 10, 2013, at 1:08 PM, Reindl Harald <h....@thelounge.net> wrote:

> Am 10.08.2013 19:47, schrieb Reindl Harald:
>> i am currently working at my F18 SPEC-file to reflect the latest
>> changes in my packaging and rebuild 3.2.5 ASAP on Fedora
>> 19 so that "yum update" and "yum downgrade" gives a better picture
>> 
>> but i doubt that the 3 years old XEON at the company will
>> outperform the one year old IvyBdrige at home with the
>> same environment, benchmarks besides ATS are compareable
>> 
>> we will see
> 
> Am 10.08.2013 19:37, schrieb Leif Hedstrom:
>> Yeah I've tested it with my normal perf regressions, and 3.3.5 was
>> the same as 3.2.4. In my small object test I get 160,000 qps
> 
> on what hardware straight from hell do you get 160 thousand qps?
> however, back to topic...…

model name	: Intel(R) Core(TM) i7 CPU         920  @ 2.67GHz

I believe Bryan has clocked it at close to 300,000 QPS on modern dual socket machines.


> ____________________________________________________________________________
> 
> OK, sorry for the noise, that's why there was a "?" in the subject
> same virtual machine with trafficserver-3.2.5-3.fc19.20130810.rh.x86_64
> 
> Total transferred:      94732065 bytes
> HTML transferred:       64253704 bytes
> Requests per second:    3206.60 [#/sec] (mean)
> Time per request:       62.371 [ms] (mean)
> Time per request:       0.312 [ms] (mean, across all concurrent requests)
> Transfer rate:          2966.48 [Kbytes/sec] received


I have no idea at this moment, but I'll double check when I get home. So I understand, you get 90k QPS with 3.2.4 and 3k QPS with 3.3.5 ?

One thing, did you try clearing the cache after upgrading from 3.3.5 ? Or is it running with a fresh cache? We should detect that the cache has to be reinitialized, but again making sure.

As for virtualization, I measure around 5-10x worse performance on virtualization vs bare metal. I've tested this on many setups (including AWS), and I've verified it on ATS, Varnish and Nginx (they all see the same degradation).

-- Leif


Re: 3.3.5: performance regression?

Posted by Reindl Harald <h....@thelounge.net>.
Am 10.08.2013 19:47, schrieb Reindl Harald:
> i am currently working at my F18 SPEC-file to reflect the latest
> changes in my packaging and rebuild 3.2.5 ASAP on Fedora
> 19 so that "yum update" and "yum downgrade" gives a better picture
> 
> but i doubt that the 3 years old XEON at the company will
> outperform the one year old IvyBdrige at home with the
> same environment, benchmarks besides ATS are compareable
> 
> we will see

Am 10.08.2013 19:37, schrieb Leif Hedstrom:
> Yeah I've tested it with my normal perf regressions, and 3.3.5 was
> the same as 3.2.4. In my small object test I get 160,000 qps

on what hardware straight from hell do you get 160 thousand qps?
however, back to topic......
____________________________________________________________________________

OK, sorry for the noise, that's why there was a "?" in the subject
same virtual machine with trafficserver-3.2.5-3.fc19.20130810.rh.x86_64

Total transferred:      94732065 bytes
HTML transferred:       64253704 bytes
Requests per second:    3206.60 [#/sec] (mean)
Time per request:       62.371 [ms] (mean)
Time per request:       0.312 [ms] (mean, across all concurrent requests)
Transfer rate:          2966.48 [Kbytes/sec] received
____________________________________________________________________________

so there is a regression with Fedora 19 GCC or the older Xeon
outperforms the Core i7 for whatever reason in context ATS

GCC regression is unlikely and F19 with -fstack-protector-strong
should outperform the F18 -fstack-protector-all builds

Fedora 19:
gcc-4.8.1-1.fc19.x86_64
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz

3.3.5: Requests per second:    3178.58 [#/sec] (mean)
3.2.5: Requests per second:    3206.60 [#/sec] (mean)

Fedora 18:
gcc-4.7.2-8.fc18.x86_64
Intel(R) Xeon(R) CPU E5640  @2.67GHz

3.2.5: Requests per second:    9002.97 [#/sec] (mean)
____________________________________________________________________________

very interesting, normally the XEON outperforms my workstation
only in cases where the 2x4 cores are really used and in any
other load tests the 3.40GHz is a least fatser than 2.67GHz

yes, Vmware Workstation is slower then ESXi 5.0 but usually
not *3 times* - sorry again for the noise!


Re: 3.3.5: performance regression?

Posted by Reindl Harald <h....@thelounge.net>.

Am 10.08.2013 19:38, schrieb Leif Hedstrom:
> On Aug 10, 2013, at 9:14 AM, Reindl Harald <h....@thelounge.net> wrote:
> 
>>
>> Am 10.08.2013 16:46, schrieb Leif Hedstrom:
>>> On Aug 10, 2013, at 7:21 AM, Reindl Harald <h....@thelounge.net> wrote:
>>>
>>>> has anybody compared 3.2 / 3.3 in performance?
>>>>
>>>> ab -c 200 -n 100000 http://<url>/rte/upload/logo.gif while "logo.gif" is
>>>> 643 bytes small and currently httpd without Trafficserver in front has
>>>> nearly the same perfomrance with even lower CPU
>>>
>>> I haven't seen this behavior. Are you positive the 3.3.5 results are cache hits ? And if so, that they become RAM cache hits? Just trying to get some ideas here … :)
>>
>> i hope so, if not that would be a bug
> 
> 
> Try -H "Cache-Control: only-if-cached

well, confirmed, it is cached, see the two requests below

i am currently working at my F18 SPEC-file to reflect the latest
changes in my packaging and rebuild 3.2.5 ASAP on Fedora
19 so that "yum update" and "yum downgrade" gives a better picture

but i doubt that the 3 years old XEON at the company will
outperform the one year old IvyBdrige at home with the
same environment, benchmarks besides ATS are compareable

we will see
______________________________________

[harry@srv-rhsoft:~]$ curl --head  -H "Cache-Control: only-if-cached" http://rhsoft.testserver/rte/upload/logo.gif

HTTP/1.1 200 OK

Date: Sat, 10 Aug 2013 17:42:02 GMT
Last-Modified: Tue, 11 Apr 2006 10:40:40 GMT
ETag: "283-411255ab33a00"
Accept-Ranges: bytes
Content-Length: 643
Cache-Control: max-age=60
Expires: Sat, 10 Aug 2013 17:43:02 GMT
X-Content-Type-Options: nosniff
Content-Type: image/gif
Age: 52
Connection: keep-alive

[harry@srv-rhsoft:~]$ curl --head  -H "Cache-Control: only-if-cached" http://rhsoft.testserver/rte/upload/logo.gif
HTTP/1.1 200 OK
Date: Sat, 10 Aug 2013 17:42:02 GMT
Last-Modified: Tue, 11 Apr 2006 10:40:40 GMT
ETag: "283-411255ab33a00"
Accept-Ranges: bytes
Content-Length: 643
Cache-Control: max-age=60
Expires: Sat, 10 Aug 2013 17:43:02 GMT
X-Content-Type-Options: nosniff
Content-Type: image/gif
Age: 53
Connection: keep-alive


Re: 3.3.5: performance regression?

Posted by Leif Hedstrom <zw...@apache.org>.
On Aug 10, 2013, at 9:14 AM, Reindl Harald <h....@thelounge.net> wrote:

> 
> Am 10.08.2013 16:46, schrieb Leif Hedstrom:
>> On Aug 10, 2013, at 7:21 AM, Reindl Harald <h....@thelounge.net> wrote:
>> 
>>> has anybody compared 3.2 / 3.3 in performance?
>>> 
>>> ab -c 200 -n 100000 http://<url>/rte/upload/logo.gif while "logo.gif" is
>>> 643 bytes small and currently httpd without Trafficserver in front has
>>> nearly the same perfomrance with even lower CPU
>> 
>> I haven't seen this behavior. Are you positive the 3.3.5 results are cache hits ? And if so, that they become RAM cache hits? Just trying to get some ideas here … :)
> 
> i hope so, if not that would be a bug


Try -H "Cache-Control: only-if-cached.

I don't think this is a read-while-writer issue, but it's possible the fuzzy prevalidate might interfere. However I don't know if any changes in that code in the last year.

-- Leif 


> 
> [root@testserver:~]$ curl --head http://rhsoft.testserver/rte/upload/logo.gif
> HTTP/1.1 200 OK
> Date: Sat, 10 Aug 2013 15:09:31 GMT
> Last-Modified: Tue, 11 Apr 2006 10:40:40 GMT
> ETag: "283-411255ab33a00"
> Accept-Ranges: bytes
> Content-Length: 643
> Cache-Control: max-age=60
> Expires: Sat, 10 Aug 2013 15:10:31 GMT
> X-Content-Type-Options: nosniff
> Connection: close
> Content-Type: image/gif
> 
> on the origin mod_expires is in action to set 60 seconds
> cache for images because in our case we have 100% dynamic
> pages and the job of ATS is only hold back the image/css/js
> requests from the preforking apache and offer KeepAlive
> 
> the 60 seconds are reflected in the curl-repsonse abvove
> which comes from the origin (127.0.0.1:80)
> 
> <IfModule mod_expires.c>
> ExpiresActive On
> ExpiresByType image/jpeg A60
> ExpiresByType image/jpg A60
> ExpiresByType image/gif A60
> ExpiresByType image/png A60
> ExpiresByType text/css A60
> ExpiresByType text/html A60
> ExpiresByType text/javascript A60
> ExpiresByType text/comma-separated-values A60
> ExpiresByType text/tab-separated-values A60
> ExpiresByType application/javascript A60
> ExpiresByType application/x-javascript A60
> ExpiresByType application/xhtml+xml A60
> ExpiresByType application/xml A60
> <IfModule/>
> 
> 
>> Reclaimable freelist would not have these sort of performance discrepancies
> 
> yes, and it should not matter in a (ok small) cache with only a handful of objects
> 

Re: 3.3.5: performance regression?

Posted by Reindl Harald <h....@thelounge.net>.

Am 10.08.2013 18:09, schrieb Yongming Zhao:
> 
> 在 2013-8-10,下午11:41,Reindl Harald <h....@thelounge.net> 写道:
> 
>>
>> Am 10.08.2013 17:32, schrieb Yongming Zhao:
>>> if your requested URL is expires very often, then you may hit the 
>>> read-while-writer performance issue, we have fixed that read-while-writer
>>> in V3.3 that will make it really work.
>>
>> but every 60 seconds is not that often in case of a apache-benchmark
>> it's a simple calculation how many cache-hits you can have within
>> this 60 seconds by 200 parallel requests of the same URL
>>
> 
> we care of the performance, but your case is mixing with the feature 
> of read-while-writer, if you get to know that read-while-writer may 
> affect your performance result, that will help us compare the result, 
> in the better understanding.

CONFIG proxy.config.cache.enable_read_while_writer INT 0
does not change anything

>>> please compare the Origin Side traffic during the test
>>
>> the origin is 127.0.0.1:80 but 6 prefork-processes
>> while "ab -c 200" is running indicates pretty clear
>> that all the work is ATS
>>
>> [root@testserver:~]$ ps aux | grep httpd | wc -l
>> 6
> 
> I mean, how many requests you get from the origin side during your testing, or hit ratio

*none* which is pretty clear in case of a preforking-httpd

StartServers             3
MinSpareServers          3
MaxSpareServers          5

so the 6 httpd-processes are the master-process and 5 idle workers

>>> and you'd better try the compare without expire issue, to make sure we have 
>>> not make critical regression there.
>>
>> no - if this is a problem now *it is* a critical regression
>>
>> the only reason trafficserver exists in our infrastructure
>> is to buffer high-traffic sites with a lot of images and
>> hold back the image-count multiplied with users requests
>> from teh preforking-apache
> 
> if you want to enable read while writer, that means you care of the origin side traffic, 
> and you may need to pay for the performance drop in speed(response time) on the proxy, 
> when that url is getting fetched from the origin

please stop to insist in "read while writer"

* disable it does not change anything
* 100000 requests with 200 parallel are done within the 60 seconds expire
* hence we speak about *one* single URL, only *one* object requested and cached


Re: 3.3.5: performance regression?

Posted by Leif Hedstrom <zw...@apache.org>.
On Aug 10, 2013, at 10:25 AM, Yongming Zhao <mi...@gmail.com> wrote:

> if that is a all cached performance test, the compared data is a clearly regression.
> 
> Leif:
> can you reproduce your performance testing?

Yeah I've tested it with my normal perf regressions, and 3.3.5 was the same as 3.2.4. In my small object test I get 160,000 qps.

I'll try again when I get home.

-- Leif 
> 
> 在 2013-8-11,上午12:09,Yongming Zhao <mi...@gmail.com> 写道:
> 
>> 
>> 在 2013-8-10,下午11:41,Reindl Harald <h....@thelounge.net> 写道:
>> 
>>> 
>>> Am 10.08.2013 17:32, schrieb Yongming Zhao:
>>>> if your requested URL is expires very often, then you may hit the 
>>>> read-while-writer performance issue, we have fixed that read-while-writer
>>>> in V3.3 that will make it really work.
>>> 
>>> but every 60 seconds is not that often in case of a apache-benchmark
>>> it's a simple calculation how many cache-hits you can have within
>>> this 60 seconds by 200 parallel requests of the same URL
>> 
>> we care of the performance, but your case is mixing with the feature of read-while-writer, if you get to know that read-while-writer may affect your performance result, that will help us compare the result, in the better understanding.
>> 
>> 
>> 
>>>> please compare the Origin Side traffic during the test
>>> 
>>> the origin is 127.0.0.1:80 but 6 prefork-processes
>>> while "ab -c 200" is running indicates pretty clear
>>> that all the work is ATS
>>> 
>>> [root@testserver:~]$ ps aux | grep httpd | wc -l
>>> 6
>> 
>> I mean, how many requests you get from the origin side during your testing, or hit ratio.
>> 
>> 
>>> 
>>>> and you'd better try the compare without expire issue, to make sure we have 
>>>> not make critical regression there.
>>> 
>>> no - if this is a problem now *it is* a critical regression
>>> 
>>> the only reason trafficserver exists in our infrastructure
>>> is to buffer high-traffic sites with a lot of images and
>>> hold back the image-count multiplied with users requests
>>> from teh preforking-apache
>> 
>> if you want to enable read while writer, that means you care of the origin side traffic, and you may need to pay for the performance drop in speed(response time) on the proxy, when that url is getting fetched from the origin.
>> 
>> 
>>> 
>>>> 在 2013-8-10,下午11:14,Reindl Harald <h....@thelounge.net> 写道:
>>>> 
>>>>> 
>>>>> Am 10.08.2013 16:46, schrieb Leif Hedstrom:
>>>>>> On Aug 10, 2013, at 7:21 AM, Reindl Harald <h....@thelounge.net> wrote:
>>>>>> 
>>>>>>> has anybody compared 3.2 / 3.3 in performance?
>>>>>>> 
>>>>>>> ab -c 200 -n 100000 http://<url>/rte/upload/logo.gif while "logo.gif" is
>>>>>>> 643 bytes small and currently httpd without Trafficserver in front has
>>>>>>> nearly the same perfomrance with even lower CPU
>>>>>> 
>>>>>> I haven't seen this behavior. Are you positive the 3.3.5 results are cache hits ? And if so, that they become RAM cache hits? Just trying to get some ideas here … :)
>>>>> 
>>>>> i hope so, if not that would be a bug
>>>>> 
>>>>> [root@testserver:~]$ curl --head http://rhsoft.testserver/rte/upload/logo.gif
>>>>> HTTP/1.1 200 OK
>>>>> Date: Sat, 10 Aug 2013 15:09:31 GMT
>>>>> Last-Modified: Tue, 11 Apr 2006 10:40:40 GMT
>>>>> ETag: "283-411255ab33a00"
>>>>> Accept-Ranges: bytes
>>>>> Content-Length: 643
>>>>> Cache-Control: max-age=60
>>>>> Expires: Sat, 10 Aug 2013 15:10:31 GMT
>>>>> X-Content-Type-Options: nosniff
>>>>> Connection: close
>>>>> Content-Type: image/gif
>>>>> 
>>>>> on the origin mod_expires is in action to set 60 seconds
>>>>> cache for images because in our case we have 100% dynamic
>>>>> pages and the job of ATS is only hold back the image/css/js
>>>>> requests from the preforking apache and offer KeepAlive
>>>>> 
>>>>> the 60 seconds are reflected in the curl-repsonse abvove
>>>>> which comes from the origin (127.0.0.1:80)
>>>>> 
>>>>> <IfModule mod_expires.c>
>>>>> ExpiresActive On
>>>>> ExpiresByType image/jpeg A60
>>>>> ExpiresByType image/jpg A60
>>>>> ExpiresByType image/gif A60
>>>>> ExpiresByType image/png A60
>>>>> ExpiresByType text/css A60
>>>>> ExpiresByType text/html A60
>>>>> ExpiresByType text/javascript A60
>>>>> ExpiresByType text/comma-separated-values A60
>>>>> ExpiresByType text/tab-separated-values A60
>>>>> ExpiresByType application/javascript A60
>>>>> ExpiresByType application/x-javascript A60
>>>>> ExpiresByType application/xhtml+xml A60
>>>>> ExpiresByType application/xml A60
>>>>> <IfModule/>
>>>>> 
>>>>> 
>>>>>> Reclaimable freelist would not have these sort of performance discrepancies
>>>>> 
>>>>> yes, and it should not matter in a (ok small) cache with only a handful of objects
> 

Re: 3.3.5: performance regression?

Posted by Yongming Zhao <mi...@gmail.com>.
if that is a all cached performance test, the compared data is a clearly regression.

Leif:
can you reproduce your performance testing?

在 2013-8-11,上午12:09,Yongming Zhao <mi...@gmail.com> 写道:

> 
> 在 2013-8-10,下午11:41,Reindl Harald <h....@thelounge.net> 写道:
> 
>> 
>> Am 10.08.2013 17:32, schrieb Yongming Zhao:
>>> if your requested URL is expires very often, then you may hit the 
>>> read-while-writer performance issue, we have fixed that read-while-writer
>>> in V3.3 that will make it really work.
>> 
>> but every 60 seconds is not that often in case of a apache-benchmark
>> it's a simple calculation how many cache-hits you can have within
>> this 60 seconds by 200 parallel requests of the same URL
>> 
> 
> we care of the performance, but your case is mixing with the feature of read-while-writer, if you get to know that read-while-writer may affect your performance result, that will help us compare the result, in the better understanding.
> 
> 
> 
>>> please compare the Origin Side traffic during the test
>> 
>> the origin is 127.0.0.1:80 but 6 prefork-processes
>> while "ab -c 200" is running indicates pretty clear
>> that all the work is ATS
>> 
>> [root@testserver:~]$ ps aux | grep httpd | wc -l
>> 6
> 
> I mean, how many requests you get from the origin side during your testing, or hit ratio.
> 
> 
>> 
>>> and you'd better try the compare without expire issue, to make sure we have 
>>> not make critical regression there.
>> 
>> no - if this is a problem now *it is* a critical regression
>> 
>> the only reason trafficserver exists in our infrastructure
>> is to buffer high-traffic sites with a lot of images and
>> hold back the image-count multiplied with users requests
>> from teh preforking-apache
> 
> if you want to enable read while writer, that means you care of the origin side traffic, and you may need to pay for the performance drop in speed(response time) on the proxy, when that url is getting fetched from the origin.
> 
> 
>> 
>>> 在 2013-8-10,下午11:14,Reindl Harald <h....@thelounge.net> 写道:
>>> 
>>>> 
>>>> Am 10.08.2013 16:46, schrieb Leif Hedstrom:
>>>>> On Aug 10, 2013, at 7:21 AM, Reindl Harald <h....@thelounge.net> wrote:
>>>>> 
>>>>>> has anybody compared 3.2 / 3.3 in performance?
>>>>>> 
>>>>>> ab -c 200 -n 100000 http://<url>/rte/upload/logo.gif while "logo.gif" is
>>>>>> 643 bytes small and currently httpd without Trafficserver in front has
>>>>>> nearly the same perfomrance with even lower CPU
>>>>> 
>>>>> I haven't seen this behavior. Are you positive the 3.3.5 results are cache hits ? And if so, that they become RAM cache hits? Just trying to get some ideas here … :)
>>>> 
>>>> i hope so, if not that would be a bug
>>>> 
>>>> [root@testserver:~]$ curl --head http://rhsoft.testserver/rte/upload/logo.gif
>>>> HTTP/1.1 200 OK
>>>> Date: Sat, 10 Aug 2013 15:09:31 GMT
>>>> Last-Modified: Tue, 11 Apr 2006 10:40:40 GMT
>>>> ETag: "283-411255ab33a00"
>>>> Accept-Ranges: bytes
>>>> Content-Length: 643
>>>> Cache-Control: max-age=60
>>>> Expires: Sat, 10 Aug 2013 15:10:31 GMT
>>>> X-Content-Type-Options: nosniff
>>>> Connection: close
>>>> Content-Type: image/gif
>>>> 
>>>> on the origin mod_expires is in action to set 60 seconds
>>>> cache for images because in our case we have 100% dynamic
>>>> pages and the job of ATS is only hold back the image/css/js
>>>> requests from the preforking apache and offer KeepAlive
>>>> 
>>>> the 60 seconds are reflected in the curl-repsonse abvove
>>>> which comes from the origin (127.0.0.1:80)
>>>> 
>>>> <IfModule mod_expires.c>
>>>> ExpiresActive On
>>>> ExpiresByType image/jpeg A60
>>>> ExpiresByType image/jpg A60
>>>> ExpiresByType image/gif A60
>>>> ExpiresByType image/png A60
>>>> ExpiresByType text/css A60
>>>> ExpiresByType text/html A60
>>>> ExpiresByType text/javascript A60
>>>> ExpiresByType text/comma-separated-values A60
>>>> ExpiresByType text/tab-separated-values A60
>>>> ExpiresByType application/javascript A60
>>>> ExpiresByType application/x-javascript A60
>>>> ExpiresByType application/xhtml+xml A60
>>>> ExpiresByType application/xml A60
>>>> <IfModule/>
>>>> 
>>>> 
>>>>> Reclaimable freelist would not have these sort of performance discrepancies
>>>> 
>>>> yes, and it should not matter in a (ok small) cache with only a handful of objects
>> 
> 


Re: 3.3.5: performance regression?

Posted by Yongming Zhao <mi...@gmail.com>.
在 2013-8-10,下午11:41,Reindl Harald <h....@thelounge.net> 写道:

> 
> Am 10.08.2013 17:32, schrieb Yongming Zhao:
>> if your requested URL is expires very often, then you may hit the 
>> read-while-writer performance issue, we have fixed that read-while-writer
>> in V3.3 that will make it really work.
> 
> but every 60 seconds is not that often in case of a apache-benchmark
> it's a simple calculation how many cache-hits you can have within
> this 60 seconds by 200 parallel requests of the same URL
> 

we care of the performance, but your case is mixing with the feature of read-while-writer, if you get to know that read-while-writer may affect your performance result, that will help us compare the result, in the better understanding.



>> please compare the Origin Side traffic during the test
> 
> the origin is 127.0.0.1:80 but 6 prefork-processes
> while "ab -c 200" is running indicates pretty clear
> that all the work is ATS
> 
> [root@testserver:~]$ ps aux | grep httpd | wc -l
> 6

I mean, how many requests you get from the origin side during your testing, or hit ratio.


> 
>> and you'd better try the compare without expire issue, to make sure we have 
>> not make critical regression there.
> 
> no - if this is a problem now *it is* a critical regression
> 
> the only reason trafficserver exists in our infrastructure
> is to buffer high-traffic sites with a lot of images and
> hold back the image-count multiplied with users requests
> from teh preforking-apache

if you want to enable read while writer, that means you care of the origin side traffic, and you may need to pay for the performance drop in speed(response time) on the proxy, when that url is getting fetched from the origin.


> 
>> 在 2013-8-10,下午11:14,Reindl Harald <h....@thelounge.net> 写道:
>> 
>>> 
>>> Am 10.08.2013 16:46, schrieb Leif Hedstrom:
>>>> On Aug 10, 2013, at 7:21 AM, Reindl Harald <h....@thelounge.net> wrote:
>>>> 
>>>>> has anybody compared 3.2 / 3.3 in performance?
>>>>> 
>>>>> ab -c 200 -n 100000 http://<url>/rte/upload/logo.gif while "logo.gif" is
>>>>> 643 bytes small and currently httpd without Trafficserver in front has
>>>>> nearly the same perfomrance with even lower CPU
>>>> 
>>>> I haven't seen this behavior. Are you positive the 3.3.5 results are cache hits ? And if so, that they become RAM cache hits? Just trying to get some ideas here … :)
>>> 
>>> i hope so, if not that would be a bug
>>> 
>>> [root@testserver:~]$ curl --head http://rhsoft.testserver/rte/upload/logo.gif
>>> HTTP/1.1 200 OK
>>> Date: Sat, 10 Aug 2013 15:09:31 GMT
>>> Last-Modified: Tue, 11 Apr 2006 10:40:40 GMT
>>> ETag: "283-411255ab33a00"
>>> Accept-Ranges: bytes
>>> Content-Length: 643
>>> Cache-Control: max-age=60
>>> Expires: Sat, 10 Aug 2013 15:10:31 GMT
>>> X-Content-Type-Options: nosniff
>>> Connection: close
>>> Content-Type: image/gif
>>> 
>>> on the origin mod_expires is in action to set 60 seconds
>>> cache for images because in our case we have 100% dynamic
>>> pages and the job of ATS is only hold back the image/css/js
>>> requests from the preforking apache and offer KeepAlive
>>> 
>>> the 60 seconds are reflected in the curl-repsonse abvove
>>> which comes from the origin (127.0.0.1:80)
>>> 
>>> <IfModule mod_expires.c>
>>> ExpiresActive On
>>> ExpiresByType image/jpeg A60
>>> ExpiresByType image/jpg A60
>>> ExpiresByType image/gif A60
>>> ExpiresByType image/png A60
>>> ExpiresByType text/css A60
>>> ExpiresByType text/html A60
>>> ExpiresByType text/javascript A60
>>> ExpiresByType text/comma-separated-values A60
>>> ExpiresByType text/tab-separated-values A60
>>> ExpiresByType application/javascript A60
>>> ExpiresByType application/x-javascript A60
>>> ExpiresByType application/xhtml+xml A60
>>> ExpiresByType application/xml A60
>>> <IfModule/>
>>> 
>>> 
>>>> Reclaimable freelist would not have these sort of performance discrepancies
>>> 
>>> yes, and it should not matter in a (ok small) cache with only a handful of objects
> 


Re: 3.3.5: performance regression?

Posted by Reindl Harald <h....@thelounge.net>.
Am 10.08.2013 17:32, schrieb Yongming Zhao:
> if your requested URL is expires very often, then you may hit the 
> read-while-writer performance issue, we have fixed that read-while-writer
> in V3.3 that will make it really work.

but every 60 seconds is not that often in case of a apache-benchmark
it's a simple calculation how many cache-hits you can have within
this 60 seconds by 200 parallel requests of the same URL

> please compare the Origin Side traffic during the test

the origin is 127.0.0.1:80 but 6 prefork-processes
while "ab -c 200" is running indicates pretty clear
that all the work is ATS

[root@testserver:~]$ ps aux | grep httpd | wc -l
6

> and you'd better try the compare without expire issue, to make sure we have 
> not make critical regression there.

no - if this is a problem now *it is* a critical regression

the only reason trafficserver exists in our infrastructure
is to buffer high-traffic sites with a lot of images and
hold back the image-count multiplied with users requests
from teh preforking-apache

> 在 2013-8-10,下午11:14,Reindl Harald <h....@thelounge.net> 写道:
> 
>>
>> Am 10.08.2013 16:46, schrieb Leif Hedstrom:
>>> On Aug 10, 2013, at 7:21 AM, Reindl Harald <h....@thelounge.net> wrote:
>>>
>>>> has anybody compared 3.2 / 3.3 in performance?
>>>>
>>>> ab -c 200 -n 100000 http://<url>/rte/upload/logo.gif while "logo.gif" is
>>>> 643 bytes small and currently httpd without Trafficserver in front has
>>>> nearly the same perfomrance with even lower CPU
>>>
>>> I haven't seen this behavior. Are you positive the 3.3.5 results are cache hits ? And if so, that they become RAM cache hits? Just trying to get some ideas here … :)
>>
>> i hope so, if not that would be a bug
>>
>> [root@testserver:~]$ curl --head http://rhsoft.testserver/rte/upload/logo.gif
>> HTTP/1.1 200 OK
>> Date: Sat, 10 Aug 2013 15:09:31 GMT
>> Last-Modified: Tue, 11 Apr 2006 10:40:40 GMT
>> ETag: "283-411255ab33a00"
>> Accept-Ranges: bytes
>> Content-Length: 643
>> Cache-Control: max-age=60
>> Expires: Sat, 10 Aug 2013 15:10:31 GMT
>> X-Content-Type-Options: nosniff
>> Connection: close
>> Content-Type: image/gif
>>
>> on the origin mod_expires is in action to set 60 seconds
>> cache for images because in our case we have 100% dynamic
>> pages and the job of ATS is only hold back the image/css/js
>> requests from the preforking apache and offer KeepAlive
>>
>> the 60 seconds are reflected in the curl-repsonse abvove
>> which comes from the origin (127.0.0.1:80)
>>
>> <IfModule mod_expires.c>
>> ExpiresActive On
>> ExpiresByType image/jpeg A60
>> ExpiresByType image/jpg A60
>> ExpiresByType image/gif A60
>> ExpiresByType image/png A60
>> ExpiresByType text/css A60
>> ExpiresByType text/html A60
>> ExpiresByType text/javascript A60
>> ExpiresByType text/comma-separated-values A60
>> ExpiresByType text/tab-separated-values A60
>> ExpiresByType application/javascript A60
>> ExpiresByType application/x-javascript A60
>> ExpiresByType application/xhtml+xml A60
>> ExpiresByType application/xml A60
>> <IfModule/>
>>
>>
>>> Reclaimable freelist would not have these sort of performance discrepancies
>>
>> yes, and it should not matter in a (ok small) cache with only a handful of objects


Re: 3.3.5: performance regression?

Posted by Yongming Zhao <mi...@gmail.com>.
if your requested URL is expires very often, then you may hit the read-while-writer performance issue, we have fixed that read-while-writer in V3.3 that will make it really work.

please compare the Origin Side traffic during the test.

and you'd better try the compare without expire issue, to make sure we have not make critical regression there.


thanks


在 2013-8-10,下午11:14,Reindl Harald <h....@thelounge.net> 写道:

> 
> Am 10.08.2013 16:46, schrieb Leif Hedstrom:
>> On Aug 10, 2013, at 7:21 AM, Reindl Harald <h....@thelounge.net> wrote:
>> 
>>> has anybody compared 3.2 / 3.3 in performance?
>>> 
>>> ab -c 200 -n 100000 http://<url>/rte/upload/logo.gif while "logo.gif" is
>>> 643 bytes small and currently httpd without Trafficserver in front has
>>> nearly the same perfomrance with even lower CPU
>> 
>> I haven't seen this behavior. Are you positive the 3.3.5 results are cache hits ? And if so, that they become RAM cache hits? Just trying to get some ideas here … :)
> 
> i hope so, if not that would be a bug
> 
> [root@testserver:~]$ curl --head http://rhsoft.testserver/rte/upload/logo.gif
> HTTP/1.1 200 OK
> Date: Sat, 10 Aug 2013 15:09:31 GMT
> Last-Modified: Tue, 11 Apr 2006 10:40:40 GMT
> ETag: "283-411255ab33a00"
> Accept-Ranges: bytes
> Content-Length: 643
> Cache-Control: max-age=60
> Expires: Sat, 10 Aug 2013 15:10:31 GMT
> X-Content-Type-Options: nosniff
> Connection: close
> Content-Type: image/gif
> 
> on the origin mod_expires is in action to set 60 seconds
> cache for images because in our case we have 100% dynamic
> pages and the job of ATS is only hold back the image/css/js
> requests from the preforking apache and offer KeepAlive
> 
> the 60 seconds are reflected in the curl-repsonse abvove
> which comes from the origin (127.0.0.1:80)
> 
> <IfModule mod_expires.c>
> ExpiresActive On
> ExpiresByType image/jpeg A60
> ExpiresByType image/jpg A60
> ExpiresByType image/gif A60
> ExpiresByType image/png A60
> ExpiresByType text/css A60
> ExpiresByType text/html A60
> ExpiresByType text/javascript A60
> ExpiresByType text/comma-separated-values A60
> ExpiresByType text/tab-separated-values A60
> ExpiresByType application/javascript A60
> ExpiresByType application/x-javascript A60
> ExpiresByType application/xhtml+xml A60
> ExpiresByType application/xml A60
> <IfModule/>
> 
> 
>> Reclaimable freelist would not have these sort of performance discrepancies
> 
> yes, and it should not matter in a (ok small) cache with only a handful of objects
> 


Re: 3.3.5: performance regression?

Posted by Reindl Harald <h....@thelounge.net>.
Am 10.08.2013 16:46, schrieb Leif Hedstrom:
> On Aug 10, 2013, at 7:21 AM, Reindl Harald <h....@thelounge.net> wrote:
> 
>> has anybody compared 3.2 / 3.3 in performance?
>>
>> ab -c 200 -n 100000 http://<url>/rte/upload/logo.gif while "logo.gif" is
>> 643 bytes small and currently httpd without Trafficserver in front has
>> nearly the same perfomrance with even lower CPU
> 
> I haven't seen this behavior. Are you positive the 3.3.5 results are cache hits ? And if so, that they become RAM cache hits? Just trying to get some ideas here … :)

i hope so, if not that would be a bug

[root@testserver:~]$ curl --head http://rhsoft.testserver/rte/upload/logo.gif
HTTP/1.1 200 OK
Date: Sat, 10 Aug 2013 15:09:31 GMT
Last-Modified: Tue, 11 Apr 2006 10:40:40 GMT
ETag: "283-411255ab33a00"
Accept-Ranges: bytes
Content-Length: 643
Cache-Control: max-age=60
Expires: Sat, 10 Aug 2013 15:10:31 GMT
X-Content-Type-Options: nosniff
Connection: close
Content-Type: image/gif

on the origin mod_expires is in action to set 60 seconds
cache for images because in our case we have 100% dynamic
pages and the job of ATS is only hold back the image/css/js
requests from the preforking apache and offer KeepAlive

the 60 seconds are reflected in the curl-repsonse abvove
which comes from the origin (127.0.0.1:80)

<IfModule mod_expires.c>
 ExpiresActive On
 ExpiresByType image/jpeg A60
 ExpiresByType image/jpg A60
 ExpiresByType image/gif A60
 ExpiresByType image/png A60
 ExpiresByType text/css A60
 ExpiresByType text/html A60
 ExpiresByType text/javascript A60
 ExpiresByType text/comma-separated-values A60
 ExpiresByType text/tab-separated-values A60
 ExpiresByType application/javascript A60
 ExpiresByType application/x-javascript A60
 ExpiresByType application/xhtml+xml A60
 ExpiresByType application/xml A60
<IfModule/>


> Reclaimable freelist would not have these sort of performance discrepancies

yes, and it should not matter in a (ok small) cache with only a handful of objects


Re: 3.3.5: performance regression?

Posted by Leif Hedstrom <zw...@apache.org>.
On Aug 10, 2013, at 7:21 AM, Reindl Harald <h....@thelounge.net> wrote:

> has anybody compared 3.2 / 3.3 in performance?
> 
> ab -c 200 -n 100000 http://<url>/rte/upload/logo.gif while "logo.gif" is
> 643 bytes small and currently httpd without Trafficserver in front has
> nearly the same perfomrance with even lower CPU

I haven't seen this behavior. Are you positive the 3.3.5 results are cache hits ? And if so, that they become RAM cache hits? Just trying to get some ideas here … :)

Reclaimable freelist would not have these sort of performance discrepancies.

-- leif