SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
Integrated Cache Training –
Netscaler Webinar




                   Mark Hillick
Agenda of Cash, sorry Cache
 •  Goals of Caching

    q Why & What

 •  Cache Policies

 •  How long to cache

 •  Memory for Cache

 •  IC configuration
   example

 •  Cache Statistics

 •  Troubleshooting IC
                 © 2007 Citrix Systems, Inc. — All rights reserved   2
Presentation Goal


 Please be aware that this a technical presentation with lots of detail
 and it is intended that it can be used as a reference guide at a later
 date (e.g. when you're on-site).

 Sadly, it s not like my usual Zen presentation with lots of funny
 pictures and jokes, sorry L




                 © 2007 Citrix Systems, Inc. — All rights reserved        3
Caching Goals


 •  Caching would be useless if it did not significantly improve
   performance.

 •  Goal => to eliminate the need to send requests in many cases.

    q Reduces the number of network round-trips required for many
      operations - we use an "expiration" mechanism for this
      purpose

 •  Goal => remove the need to send full responses in many other
   cases.

    q  The latter reduces network bandwidth requirements - we use
      a "validation" mechanism for this purpose
                  © 2007 Citrix Systems, Inc. — All rights reserved   4
Caching is Used Everywhere


 •  Local cache in your browser

 •  Cache in the office (Forward Proxy or Transparent)

 •  Cache at the ISP (Transparent)

 •  Cache at the origin (Reverse Proxy or Transparent)

 •  Cache integrated inside a traffic manager – much better J




                © 2007 Citrix Systems, Inc. — All rights reserved   5
Caching Benefits.


  1.  Saves Bandwidth


  2.  Reduces traffic to back-end server & so saves processing
        resources


  3.  Protects back-end servers from flash crowds


  4.    Improves the response time & Increases site capacity


   P.S. Even more benefits when integrated within a LB J


                © 2007 Citrix Systems, Inc. — All rights reserved   6
IC in Packet-Processing
                              TCP Processing


                                 SSL Decrypt


                                HTTP Parsing


                               AAA Processing


                             Cache Redirection


                              Content Switching


                             Application Firewall


                             Responder Action?


                                   Cache Hit?


                         HTTP Cache Req Policies


                              Rewrite Policy Eval


                                 Load Balancing


                                Content Filtering



          © 2007 Citrix Systems, Inc. — All rights reserved   7
Non-Caching Proxy



GET /foo/index.html HTTP/1.1                                         GET /foo/index.html HTTP/1.1
    Host: www.example.com                                                Host: www.example.com

                                                     Proxy	




     HTTP/1.1 200 OK                                                      HTTP/1.1 200 OK
 Last-Modified: Thu, ...                                              Last-Modified: Thu, ...
  Content-Length: 3688                                                 Content-Length: 3688
 Content-Type: text/html                                              Content-Type: text/html




                 © 2007 Citrix Systems, Inc. — All rights reserved                                  8
Caching Proxy: Miss



GET /foo/index.html HTTP/1.1                                         GET /foo/index.html HTTP/1.1
    Host: www.example.com                                                Host: www.example.com

                                                     Proxy	




     HTTP/1.1 200 OK                                                      HTTP/1.1 200 OK
 Last-Modified: Thu, ...                                              Last-Modified: Thu, ...
  Content-Length: 3688                                                 Content-Length: 3688
 Content-Type: text/html                                              Content-Type: text/html


                                              Proxy  Cache	
                                              (Saves  copy)	

                 © 2007 Citrix Systems, Inc. — All rights reserved                                  9
Caching Proxy: Hit



GET /foo/index.html HTTP/1.1
    Host: www.example.com

                                                     Proxy	




     HTTP/1.1 200 OK
 Last-Modified: Thu, ...
  Content-Length: 3688
 Content-Type: text/html


                                             Proxy  Cache	
                                             (Fresh  copy!)	

                 © 2007 Citrix Systems, Inc. — All rights reserved   10
HTTP Response after a hit
•  wget -S --header="If-None-Match:23834-b1-4951a45768b8d" -U
  Mozilla http://10.90.196.68/index.html

•  HTTP/1.1 200 OK
………

•  Via: NS-CACHE-9.2: 65
•  ETag: "23834-b1-4951a45768b8d"
•  Server: Apache/2.2.14 (Ubuntu)
......... OR .........

•  ETag: "23834-b1-4951a45768b8d"
•  2011-04-26 18:22:56 ERROR 304: Not Modified.
………

                         © 2007 Citrix Systems, Inc. — All rights reserved   11
HTTP Response after a miss

•  $ wget -S --header="If-None-Match:23834-b1-4951a45768b8d" -U
  Mozilla http://10.90.196.68/index.html
……….
•  HTTP/1.1 200 OK
•  Date: Wed, 27 Apr 2011 09:30:59 GMT
•  Server: Apache/2.2.14 (Ubuntu)
•  Last-Modified: Mon, 15 Nov 2010 16:52:53 GMT
………..
•  Saving to: `index.html.41


                  © 2007 Citrix Systems, Inc. — All rights reserved   12
What Not to Cache

•  Cache-Control: no-store                                   =>applies to entire message (req/resp)
•  Cache-Control: no-cache =>server cannot respond with cached
  response
•  Cache-Control: Private => not by shared cache
    q More info see -
      http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
•  POST request.
•  Don t cache if set-cookie exists
•  Don t cache all 5xx response codes, example 503 (Gateway time out)

•  By default, NS ignores cache-control headers in requests -> CG
  Settings
                   © 2007 Citrix Systems, Inc. — All rights reserved                                  13
Freshness

•  Describes how long the associated representation is fresh for.

   q No need to send a request to server if object has not expired

   q Saves time


•  Expires: Fri, 30 Oct 1998 14:19:41 GMT


•  Cache-Control: max-age=3600



                   © 2007 Citrix Systems, Inc. — All rights reserved   14
Validation

•  Validation – once expired, validator can be used to check with the
  server if the object is still valid.


   q  Send conditional request and get a short “304 Not Modified”
     response
   q  Saves bandwidth

•  If-Modified-Since <Date>


•  If-None-Match <Etag>


                    © 2007 Citrix Systems, Inc. — All rights reserved   15
Caching Proxy: Validation



GET /foo/index.html HTTP/1.1                                         GET /foo/index.html HTTP/1.1
    Host: www.example.com                                                Host: www.example.com
                                                                     If-Modified-Since: Thu, ...
                                                     Proxy	




     HTTP/1.1 200 OK                                                  HTTP/1.1 304 Not Modified
 Last-Modified: Thu, ...                                                   Date: Fri, ...
  Content-Length: 3688
 Content-Type: text/html


                                              Proxy  Cache	
                                              (Saves  copy)	

                 © 2007 Citrix Systems, Inc. — All rights reserved                                  16
Cacheability Policies
•  Specifies if response is cacheable.
    q  Request or Response-based policy
•  CG is DEFAULT by default J but can be changed.
•  Action types
     q  CACHE: Transaction is cacheable. Store the object
     q  NOCACHE: Transaction is non-cacheable.
     q  MAY_NOCACHE
        o  For request based policies only
        o  The response may be cacheable. The default if no response
          cacheability policy matches is to not cache the response.
    q  MAY_CACHE
      o  For request based policies only
      o  The response may be cacheable. The default if no response
          cacheability policy matches is to cache the response.
    q  INVAL
      o  Mark the object as invalid
                   © 2007 Citrix Systems, Inc. — All rights reserved   17
Cache Decision Time

•  Cache, Nocache, Inval
    q  Cache decision @ request time & unless something that prevents decision
      like CL mistmatch, no policy eval @ response time



•  MAY_CACHE, MAY_NOCACHE
    q  Cache decision @ response time




                  © 2007 Citrix Systems, Inc. — All rights reserved         18
Invalidate versus Expire

•  Invalidate
    q  Invalidate will invalidate the object/"all objects in contentgroup".
    q  But the way it is done is it is optimized such a way that we don't look at
       each object and remove it but when you run expire command or when new
       request comes for the invalid object, it is then removed.

    q  We serve a full response (200) to client regardless of cache hit.

•  Expire
    q  Only mark the object as expired
    q  Request comes in & instead of getting full response (i.e what we do for
       invalid object) we will send if-modified-since/if-none-match conditional
       request to back-end server. i.e can receive a 304.


                   © 2007 Citrix Systems, Inc. — All rights reserved                 19
Content Group
•  Every cached object => member of CG
    q  No CG, object => Default
    q  minhit – no. of hits before store
•  Properties of objects can be controlled per contentgroup
•  Dynamic versus Static - parametised
•  Configurations per content-group are
    q  Expiry settings
    q  Portions of object considered for caching as well as Invalidation
       [Parameterized Caching]
    q  Pre-fetch objects before it gets expired (event-driven)
    q  Inserting headers (e.g. Via header)
    q  Memory related configuration for the objects and for this whole groups


                   © 2007 Citrix Systems, Inc. — All rights reserved             20
Flash Cache (FC)
•  FC
    q Improves performance –> 1 req to back-end server
    q Concurrent requests queued on NS & single response served
    q set/add cache contentgroup <group_name> -flashCache YES


    q POWERFUL




    q Cannot enable with PET (ensures IC polls origin before serving)



                 © 2007 Citrix Systems, Inc. — All rights reserved       21
Some Other CG settings
•  Expiry settings (blank by default)
q Relexpiry – relative -> overrides server response settings
q heurexpiryParam - %
q Expire after complete response received
•  If no expiry settings & none in response => cache miss but can do
  validation (non-fc)

•  Cache controls
q No cache depending on size or hits
q Mem limit usage per group
•  Works with FC J but probably not wise on significant groupsExpire
  after complete response received


                  © 2007 Citrix Systems, Inc. — All rights reserved     22
Cache Policies

•  Built-In (begin with “__” & “ctx_”)
    q Greatly enhanced in 9.3 – should be sufficient for most


•  Bound globally or per vServer
    q Easy-To-Administer & View within Global Policy Manager


•  PI-based expression engine like other NS features




                  © 2007 Citrix Systems, Inc. — All rights reserved   23
Cache

•  Built-In (begin with “__” )
    q Greatly enhanced in 9.3 – should be sufficient for most


•  Bound globally or per vServer
    q Easy-To-Administer & View within Global Policy Manager


•  PI-based expression engine like other NS features




                   © 2007 Citrix Systems, Inc. — All rights reserved   24
Verification

•  Three Verification Options (again sh cache pa)


    q Hostname (Sufficient for Most Companies)


    q Hostname & IP (Default)


    q DNS (Most Secure)




                 © 2007 Citrix Systems, Inc. — All rights reserved   25
Flushing the Cache
•  Flush Cache
   q Remove stale content manually
   q Troubleshooting (preferred flush, disable, enable)
   q CLI – either CG or Object
       o  flush cache contentGroup content_group_html
       o  flush cache contentGroup ALL
       o  flush cache object –locator <0x….>
   q GUI – IC > Cache Objects


•  Automatic CG flush once CG configuration is modified

                 © 2007 Citrix Systems, Inc. — All rights reserved   26
Cache Memory Management (1)
•  BSD & PPE First
•  7500 with 8gb RAM & 3 PE
    q 2gb for kernel, 3gb for PE & max 3gb for IC
    q Each PE has minimum of 1gb


•  17500 – 48gb mem & 11 PE
    q 2gb for kernel, 23gb to PE & IC can take up to 23gb
    q Each PE cannot exceed 3.2gb address space


•  IC takes up what’s left (!>0.5)

                     © 2007 Citrix Systems, Inc. — All rights reserved   27
Cache Memory Management (2)
•  > set cache pa –memLimit 254
•  > sh cache pa | grep -i mem
      Memory usage limit: 10000 MBytes

      Memory usage limit (active value): 10000 Mbytes                                 => reboot

      Maximum value for Memory usage limit: 15662 MBytes

•  > sh cache contentgroup
•  Memory Allocation Issues
q cli> stat cache –detail | grep alloc

    Memory allocation failures                                           5741   => cache misses



                     © 2007 Citrix Systems, Inc. — All rights reserved                             28
Cache Selectors
•  Best practice to configure selectors (preferred over parameters)
    •  Named filter – locates particular objects in CG, not exact match
    •  Associate selector based on the request, not with responses
    •  Sample selectors
        •  http.req.url; http.req.method; client.ip.dst etc
•  Use cases
    q One file only cached once regardless of hostname
    q Two copies of same file – compressed & uncompressed
    q Same file, same hostname but different VIPs & CGs



                  © 2007 Citrix Systems, Inc. — All rights reserved       29
“Not Cache” Best Practice
•  Not Cache policies first
    q Once IC is turned on, it will begin to cache as per the default
       policies.

        o  This may cause confidential content to be cached by
           accidentThen cache known, good content

    q Start with images – jpegs, gifs
    q Check statistics for
        o  Memory allocation errors
        o  Hits
        o  Misses
        o  Expiries

                   © 2007 Citrix Systems, Inc. — All rights reserved     30
Cache HTTP Callout
•  Callouts to external servers
    q Cache saves multiple requests


•  add cache policy pol_callout -rule "CLIENT.IP.SRC.EQ
  (127.128.129.130 )" -action CACHE –storeInGroup

•  bind cache global pol_callout –priority 100 –gotoPriorityExpression END
  –type REQ_DEFAULT

•  sh cache object –locator <0x…>
   HTTP callout cell: YES
    HTTP callout name: callout1
    HTTP callout type: TEXT
    HTTP callout response: NO



                  © 2007 Citrix Systems, Inc. — All rights reserved    31
Soft-Cache Expiry
•  When a back-end server does not respond quickly to requests, an
  upstream NetScaler can serve responses from the cache.

        q Liberal interpretation of RFC
        q Protects back-end server further (e.g. lash-type event)
        q Serves stale data for a minimal amount of time


•  Applies to 9.2.52.3 & above




                  © 2007 Citrix Systems, Inc. — All rights reserved   32
Configuration through Wizard (1)
  •  Easy-to-use J




                © 2007 Citrix Systems, Inc. — All rights reserved   33
Configuration through Wizard (2)




          © 2007 Citrix Systems, Inc. — All rights reserved   34
Configuration through Wizard (3)




          © 2007 Citrix Systems, Inc. — All rights reserved   35
Example Configuration
  •  enable feature IC

  •  set cache parameter –memlimit 512

  •  add cache contentgroup cg_image –relExpiry 600 –memLimit 100 –
    maxResSize 512


  •  add cache policy cp1 –rule http.req.url.contains(“jpeg”) –action cache
    –storeingroup cg_image


  •  bind cache global cp1 –priority 1 –type REQ_DEFAULT

  cli> sh cache object
  0x000000078b4200000004 cg_image //10.102.30.16:80/abc.jpeg

                © 2007 Citrix Systems, Inc. — All rights reserved       36
Statistics via the CLI (1)

  •  cli> sh cache object
  0x000000078b4200000004 cg_image //10.102.30.16:80/abc.jpeg


  •  cli> sh cache object –locator 0x000000078b4200000004
        q  Address in Memory

  •  nscachemgr –a/-g <contentgroup>
       q  Shell Equivalent

  •  Use grep – POWERFUL for parsing output for hits, misses etc.



                 © 2007 Citrix Systems, Inc. — All rights reserved   37
Statistics via the CLI (2)




            © 2007 Citrix Systems, Inc. — All rights reserved   38
Statistics via the GUI (1)




           © 2007 Citrix Systems, Inc. — All rights reserved   39
Statistics via the GUI (2)




           © 2007 Citrix Systems, Inc. — All rights reserved   40
Statistics via the GUI (3)




           © 2007 Citrix Systems, Inc. — All rights reserved   41
Troubleshooting Tools1

•  Browser -> inconsistencies & can be very frustrating L
    q FF (HTTP Fox & Tamper Data Extensions but FF4 issues)
    q IE (7, 8, 9) -> Fiddler
    q Opera & Chrome -> as standard, no extensions


•  Tracing & PCAP ->
    q Nstrace & Wireshark as usual J




                  © 2007 Citrix Systems, Inc. — All rights reserved   42
Troubleshooting Tools2

•  Paros (as a proxy in the middle) -> I now use Zap (Owasp project fork of
  Paros)

•  CLI -> no user-cache to worry about J
    q wget
    •  wget –S –header=“If-None-Match:etag_value” http://test.com/file.jpg
    q curl
    o  curl –header “If-None-Match: etag_value” test.com/index.html




                 © 2007 Citrix Systems, Inc. — All rights reserved      43
Troubleshooting

 •  Cache turned on but no cache objects
     q  sh cache pa != Memory usage limit: 0 bytes
     q  Zero memory = cache misses
          o  Warning msg in 9.2 when sh cache object
     q  Check expiry settings? NS? Server?

 •  Blank entries in nscachemgr output?
     q  //10.90.196.76/
     q  //10.90.196.76/citrix_logo.jpg
     q  Default caching properties of GET / HTTP/1.1



               © 2007 Citrix Systems, Inc. — All rights reserved   44
CTX Articles (just a snapshot)

   •  http://support.citrix.com/article/CTX124553 - how to IC
   •  http://support.citrix.com/article/CTX123753 - compressed
      content to unadvertised clients
   •  http://support.citrix.com/article/CTX126557 - caching
      uncompressed & compressed content of same file
   •  http://support.citrix.com/article/CTX128801 - same
      hostname/object but different vip twice
   •  http://support.citrix.com/article/CTX129118 - has my HTTP
      callout been cached
   •  http://support.citrix.com/article/CTX124718 - cache callout
      response
   •  http://support.citrix.com/article/CTX129734 - Soft Cache
      Expiry



               © 2007 Citrix Systems, Inc. — All rights reserved    45
Extra Reading

  •  You can use perl, curl, wget, browser add-ons but I like wget –
       q  http://www.cyberciti.biz/tips/linux-wget-your-ultimate-
         command-line-downloader.html
      q  http://www.computerhope.com/unix/wget.htm
      q  Google “wget site:www.linuxquestions.org”
      q  Easy to write a basic shell script around it & doesn’t need
         to be too complicated


  •  RFC 2616 (HTTP) VERY IMPORTANT
      q  Section 13 (Caching)
      q  Section 14 (Headers)



                © 2007 Citrix Systems, Inc. — All rights reserved       46
So with IC you can, take over….




          © 2007 Citrix Systems, Inc. — All rights reserved   47
Sláinte




          © 2007 Citrix Systems, Inc. — All rights reserved   48
© 2007 Citrix Systems, Inc. — All rights reserved   49

Contenu connexe

Tendances

Continuous integration with teamcity
Continuous integration with teamcityContinuous integration with teamcity
Continuous integration with teamcity
Eugene Sheretov
 
오픈소스 모니터링비교
오픈소스 모니터링비교오픈소스 모니터링비교
오픈소스 모니터링비교
sprdd
 

Tendances (20)

Continuous integration with teamcity
Continuous integration with teamcityContinuous integration with teamcity
Continuous integration with teamcity
 
Bevezetés az Amazon Web Services (AWS) világába
Bevezetés az Amazon Web Services (AWS) világábaBevezetés az Amazon Web Services (AWS) világába
Bevezetés az Amazon Web Services (AWS) világába
 
Cilium - Bringing the BPF Revolution to Kubernetes Networking and Security
Cilium - Bringing the BPF Revolution to Kubernetes Networking and SecurityCilium - Bringing the BPF Revolution to Kubernetes Networking and Security
Cilium - Bringing the BPF Revolution to Kubernetes Networking and Security
 
Kubernetes Networking with Cilium - Deep Dive
Kubernetes Networking with Cilium - Deep DiveKubernetes Networking with Cilium - Deep Dive
Kubernetes Networking with Cilium - Deep Dive
 
KFServing - Serverless Model Inferencing
KFServing - Serverless Model InferencingKFServing - Serverless Model Inferencing
KFServing - Serverless Model Inferencing
 
急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea 急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea
 
Linux Linux Traffic Control
Linux Linux Traffic ControlLinux Linux Traffic Control
Linux Linux Traffic Control
 
Secure element for IoT device
Secure element for IoT deviceSecure element for IoT device
Secure element for IoT device
 
gRPC と nginx による HTTP/2 サービスメッシュ構築
gRPC と nginx による HTTP/2 サービスメッシュ構築gRPC と nginx による HTTP/2 サービスメッシュ構築
gRPC と nginx による HTTP/2 サービスメッシュ構築
 
Présentation NAC-NAP PPT HARIFI Madiha
 Présentation NAC-NAP PPT HARIFI Madiha Présentation NAC-NAP PPT HARIFI Madiha
Présentation NAC-NAP PPT HARIFI Madiha
 
Cilium - overview and recent updates
Cilium - overview and recent updatesCilium - overview and recent updates
Cilium - overview and recent updates
 
cilium-public.pdf
cilium-public.pdfcilium-public.pdf
cilium-public.pdf
 
오픈소스 모니터링비교
오픈소스 모니터링비교오픈소스 모니터링비교
오픈소스 모니터링비교
 
Kea DHCP – the new open source DHCP server from ISC
Kea DHCP – the new open source DHCP server from ISCKea DHCP – the new open source DHCP server from ISC
Kea DHCP – the new open source DHCP server from ISC
 
Citrix TechEdge 2014 - Advanced Tools and Techniques for Troubleshooting NetS...
Citrix TechEdge 2014 - Advanced Tools and Techniques for Troubleshooting NetS...Citrix TechEdge 2014 - Advanced Tools and Techniques for Troubleshooting NetS...
Citrix TechEdge 2014 - Advanced Tools and Techniques for Troubleshooting NetS...
 
Monitoring pfSense 2.4 with SNMP - pfSense Hangout March 2018
Monitoring pfSense 2.4 with SNMP - pfSense Hangout March 2018Monitoring pfSense 2.4 with SNMP - pfSense Hangout March 2018
Monitoring pfSense 2.4 with SNMP - pfSense Hangout March 2018
 
Apache EventMesh を使ってみた
Apache EventMesh を使ってみたApache EventMesh を使ってみた
Apache EventMesh を使ってみた
 
End-to-end Streaming Between gRPC Services Via Kafka with John Fallows
End-to-end Streaming Between gRPC Services Via Kafka with John FallowsEnd-to-end Streaming Between gRPC Services Via Kafka with John Fallows
End-to-end Streaming Between gRPC Services Via Kafka with John Fallows
 
Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)
 
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
 

En vedette

En vedette (7)

Troubleshooting Common Network Related Issues with NetScaler
Troubleshooting Common Network Related Issues with NetScalerTroubleshooting Common Network Related Issues with NetScaler
Troubleshooting Common Network Related Issues with NetScaler
 
NetScaler TCP Performance Tuning
NetScaler TCP Performance TuningNetScaler TCP Performance Tuning
NetScaler TCP Performance Tuning
 
Using NetScaler Insight to Troubleshoot Network and Server Performance Issues
Using NetScaler Insight to Troubleshoot Network and Server Performance IssuesUsing NetScaler Insight to Troubleshoot Network and Server Performance Issues
Using NetScaler Insight to Troubleshoot Network and Server Performance Issues
 
In-depth Troubleshooting on NetScaler using Command Line Tools
In-depth Troubleshooting on NetScaler using Command Line ToolsIn-depth Troubleshooting on NetScaler using Command Line Tools
In-depth Troubleshooting on NetScaler using Command Line Tools
 
NetScaler 11 Update
NetScaler 11 UpdateNetScaler 11 Update
NetScaler 11 Update
 
Advanced Tools and Techniques for Troubleshooting NetScaler Appliances
Advanced Tools and Techniques for Troubleshooting NetScaler AppliancesAdvanced Tools and Techniques for Troubleshooting NetScaler Appliances
Advanced Tools and Techniques for Troubleshooting NetScaler Appliances
 
The Real Life Social Network v2
The Real Life Social Network v2The Real Life Social Network v2
The Real Life Social Network v2
 

Similaire à Integrated Cache on Netscaler

Choosing A Proxy Server - Apachecon 2014
Choosing A Proxy Server - Apachecon 2014Choosing A Proxy Server - Apachecon 2014
Choosing A Proxy Server - Apachecon 2014
bryan_call
 
Interactive web. O rly?
Interactive web. O rly?Interactive web. O rly?
Interactive web. O rly?
timbc
 
Optimising Web Application Frontend
Optimising Web Application FrontendOptimising Web Application Frontend
Optimising Web Application Frontend
tkramar
 
Computer network (10)
Computer network (10)Computer network (10)
Computer network (10)
NYversity
 
Как Web-акселератор акселерирует ваш сайт / Александр Крижановский (Tempesta ...
Как Web-акселератор акселерирует ваш сайт / Александр Крижановский (Tempesta ...Как Web-акселератор акселерирует ваш сайт / Александр Крижановский (Tempesta ...
Как Web-акселератор акселерирует ваш сайт / Александр Крижановский (Tempesta ...
Ontico
 

Similaire à Integrated Cache on Netscaler (20)

Choosing A Proxy Server - Apachecon 2014
Choosing A Proxy Server - Apachecon 2014Choosing A Proxy Server - Apachecon 2014
Choosing A Proxy Server - Apachecon 2014
 
Interactive web. O rly?
Interactive web. O rly?Interactive web. O rly?
Interactive web. O rly?
 
Architecting &Building Scalable Secure Web API
Architecting &Building Scalable Secure Web APIArchitecting &Building Scalable Secure Web API
Architecting &Building Scalable Secure Web API
 
20190516 web security-basic
20190516 web security-basic20190516 web security-basic
20190516 web security-basic
 
DEF CON 27- ALBINOWAX - http desync attacks
DEF CON 27- ALBINOWAX - http desync attacksDEF CON 27- ALBINOWAX - http desync attacks
DEF CON 27- ALBINOWAX - http desync attacks
 
computer networking
computer networkingcomputer networking
computer networking
 
Http - All you need to know
Http - All you need to knowHttp - All you need to know
Http - All you need to know
 
Hidden Gems in HTTP
Hidden Gems in HTTPHidden Gems in HTTP
Hidden Gems in HTTP
 
Optimising Web Application Frontend
Optimising Web Application FrontendOptimising Web Application Frontend
Optimising Web Application Frontend
 
Server architecture
Server architectureServer architecture
Server architecture
 
Leverage HTTP to deliver cacheable websites - Codemotion Rome 2018
Leverage HTTP to deliver cacheable websites - Codemotion Rome 2018Leverage HTTP to deliver cacheable websites - Codemotion Rome 2018
Leverage HTTP to deliver cacheable websites - Codemotion Rome 2018
 
Leverage HTTP to deliver cacheable websites - Thijs Feryn - Codemotion Rome 2018
Leverage HTTP to deliver cacheable websites - Thijs Feryn - Codemotion Rome 2018Leverage HTTP to deliver cacheable websites - Thijs Feryn - Codemotion Rome 2018
Leverage HTTP to deliver cacheable websites - Thijs Feryn - Codemotion Rome 2018
 
Type URL, Enter, and Then …
Type URL, Enter, and Then …Type URL, Enter, and Then …
Type URL, Enter, and Then …
 
Computer network (10)
Computer network (10)Computer network (10)
Computer network (10)
 
IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."
IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."
IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."
 
Life on the Edge with ESI
Life on the Edge with ESILife on the Edge with ESI
Life on the Edge with ESI
 
Как Web-акселератор акселерирует ваш сайт / Александр Крижановский (Tempesta ...
Как Web-акселератор акселерирует ваш сайт / Александр Крижановский (Tempesta ...Как Web-акселератор акселерирует ваш сайт / Александр Крижановский (Tempesta ...
Как Web-акселератор акселерирует ваш сайт / Александр Крижановский (Tempesta ...
 
Web performance across the HTTP to HTTPS transition
Web performance across the HTTP to HTTPS transitionWeb performance across the HTTP to HTTPS transition
Web performance across the HTTP to HTTPS transition
 
Under the Covers with the Web
Under the Covers with the WebUnder the Covers with the Web
Under the Covers with the Web
 
Building Super Fast Cloud-Native Data Platforms - Yaron Haviv, KubeCon 2017 EU
Building Super Fast Cloud-Native Data Platforms - Yaron Haviv, KubeCon 2017 EUBuilding Super Fast Cloud-Native Data Platforms - Yaron Haviv, KubeCon 2017 EU
Building Super Fast Cloud-Native Data Platforms - Yaron Haviv, KubeCon 2017 EU
 

Plus de Mark Hillick

Peeling back your Network Layers with Security Onion
Peeling back your Network Layers with Security OnionPeeling back your Network Layers with Security Onion
Peeling back your Network Layers with Security Onion
Mark Hillick
 

Plus de Mark Hillick (9)

Peeling back your Network Layers with Security Onion
Peeling back your Network Layers with Security OnionPeeling back your Network Layers with Security Onion
Peeling back your Network Layers with Security Onion
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
PHP Loves MongoDB - Dublin MUG (by Hannes)
PHP Loves MongoDB - Dublin MUG (by Hannes)PHP Loves MongoDB - Dublin MUG (by Hannes)
PHP Loves MongoDB - Dublin MUG (by Hannes)
 
HackEire 2009
HackEire 2009HackEire 2009
HackEire 2009
 
Scareware - Irisscon 2009
Scareware - Irisscon 2009Scareware - Irisscon 2009
Scareware - Irisscon 2009
 
Scareware Traversing the World via Ireland
Scareware Traversing the World via IrelandScareware Traversing the World via Ireland
Scareware Traversing the World via Ireland
 
Implementing a WAF
Implementing a WAFImplementing a WAF
Implementing a WAF
 
CTF: Bringing back more than sexy!
CTF: Bringing back more than sexy!CTF: Bringing back more than sexy!
CTF: Bringing back more than sexy!
 
MongoDB - Who, What & Where!
MongoDB - Who, What & Where!MongoDB - Who, What & Where!
MongoDB - Who, What & Where!
 

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Dernier (20)

A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 

Integrated Cache on Netscaler

  • 1. Integrated Cache Training – Netscaler Webinar Mark Hillick
  • 2. Agenda of Cash, sorry Cache •  Goals of Caching q Why & What •  Cache Policies •  How long to cache •  Memory for Cache •  IC configuration example •  Cache Statistics •  Troubleshooting IC © 2007 Citrix Systems, Inc. — All rights reserved 2
  • 3. Presentation Goal Please be aware that this a technical presentation with lots of detail and it is intended that it can be used as a reference guide at a later date (e.g. when you're on-site). Sadly, it s not like my usual Zen presentation with lots of funny pictures and jokes, sorry L © 2007 Citrix Systems, Inc. — All rights reserved 3
  • 4. Caching Goals •  Caching would be useless if it did not significantly improve performance. •  Goal => to eliminate the need to send requests in many cases. q Reduces the number of network round-trips required for many operations - we use an "expiration" mechanism for this purpose •  Goal => remove the need to send full responses in many other cases. q  The latter reduces network bandwidth requirements - we use a "validation" mechanism for this purpose © 2007 Citrix Systems, Inc. — All rights reserved 4
  • 5. Caching is Used Everywhere •  Local cache in your browser •  Cache in the office (Forward Proxy or Transparent) •  Cache at the ISP (Transparent) •  Cache at the origin (Reverse Proxy or Transparent) •  Cache integrated inside a traffic manager – much better J © 2007 Citrix Systems, Inc. — All rights reserved 5
  • 6. Caching Benefits. 1.  Saves Bandwidth 2.  Reduces traffic to back-end server & so saves processing resources 3.  Protects back-end servers from flash crowds 4.  Improves the response time & Increases site capacity P.S. Even more benefits when integrated within a LB J © 2007 Citrix Systems, Inc. — All rights reserved 6
  • 7. IC in Packet-Processing TCP Processing SSL Decrypt HTTP Parsing AAA Processing Cache Redirection Content Switching Application Firewall Responder Action? Cache Hit? HTTP Cache Req Policies Rewrite Policy Eval Load Balancing Content Filtering © 2007 Citrix Systems, Inc. — All rights reserved 7
  • 8. Non-Caching Proxy GET /foo/index.html HTTP/1.1 GET /foo/index.html HTTP/1.1 Host: www.example.com Host: www.example.com Proxy HTTP/1.1 200 OK HTTP/1.1 200 OK Last-Modified: Thu, ... Last-Modified: Thu, ... Content-Length: 3688 Content-Length: 3688 Content-Type: text/html Content-Type: text/html © 2007 Citrix Systems, Inc. — All rights reserved 8
  • 9. Caching Proxy: Miss GET /foo/index.html HTTP/1.1 GET /foo/index.html HTTP/1.1 Host: www.example.com Host: www.example.com Proxy HTTP/1.1 200 OK HTTP/1.1 200 OK Last-Modified: Thu, ... Last-Modified: Thu, ... Content-Length: 3688 Content-Length: 3688 Content-Type: text/html Content-Type: text/html Proxy  Cache (Saves  copy) © 2007 Citrix Systems, Inc. — All rights reserved 9
  • 10. Caching Proxy: Hit GET /foo/index.html HTTP/1.1 Host: www.example.com Proxy HTTP/1.1 200 OK Last-Modified: Thu, ... Content-Length: 3688 Content-Type: text/html Proxy  Cache (Fresh  copy!) © 2007 Citrix Systems, Inc. — All rights reserved 10
  • 11. HTTP Response after a hit •  wget -S --header="If-None-Match:23834-b1-4951a45768b8d" -U Mozilla http://10.90.196.68/index.html •  HTTP/1.1 200 OK ……… •  Via: NS-CACHE-9.2: 65 •  ETag: "23834-b1-4951a45768b8d" •  Server: Apache/2.2.14 (Ubuntu) ......... OR ......... •  ETag: "23834-b1-4951a45768b8d" •  2011-04-26 18:22:56 ERROR 304: Not Modified. ……… © 2007 Citrix Systems, Inc. — All rights reserved 11
  • 12. HTTP Response after a miss •  $ wget -S --header="If-None-Match:23834-b1-4951a45768b8d" -U Mozilla http://10.90.196.68/index.html ………. •  HTTP/1.1 200 OK •  Date: Wed, 27 Apr 2011 09:30:59 GMT •  Server: Apache/2.2.14 (Ubuntu) •  Last-Modified: Mon, 15 Nov 2010 16:52:53 GMT ……….. •  Saving to: `index.html.41 © 2007 Citrix Systems, Inc. — All rights reserved 12
  • 13. What Not to Cache •  Cache-Control: no-store =>applies to entire message (req/resp) •  Cache-Control: no-cache =>server cannot respond with cached response •  Cache-Control: Private => not by shared cache q More info see - http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html •  POST request. •  Don t cache if set-cookie exists •  Don t cache all 5xx response codes, example 503 (Gateway time out) •  By default, NS ignores cache-control headers in requests -> CG Settings © 2007 Citrix Systems, Inc. — All rights reserved 13
  • 14. Freshness •  Describes how long the associated representation is fresh for. q No need to send a request to server if object has not expired q Saves time •  Expires: Fri, 30 Oct 1998 14:19:41 GMT •  Cache-Control: max-age=3600 © 2007 Citrix Systems, Inc. — All rights reserved 14
  • 15. Validation •  Validation – once expired, validator can be used to check with the server if the object is still valid. q  Send conditional request and get a short “304 Not Modified” response q  Saves bandwidth •  If-Modified-Since <Date> •  If-None-Match <Etag> © 2007 Citrix Systems, Inc. — All rights reserved 15
  • 16. Caching Proxy: Validation GET /foo/index.html HTTP/1.1 GET /foo/index.html HTTP/1.1 Host: www.example.com Host: www.example.com If-Modified-Since: Thu, ... Proxy HTTP/1.1 200 OK HTTP/1.1 304 Not Modified Last-Modified: Thu, ... Date: Fri, ... Content-Length: 3688 Content-Type: text/html Proxy  Cache (Saves  copy) © 2007 Citrix Systems, Inc. — All rights reserved 16
  • 17. Cacheability Policies •  Specifies if response is cacheable. q  Request or Response-based policy •  CG is DEFAULT by default J but can be changed. •  Action types q  CACHE: Transaction is cacheable. Store the object q  NOCACHE: Transaction is non-cacheable. q  MAY_NOCACHE o  For request based policies only o  The response may be cacheable. The default if no response cacheability policy matches is to not cache the response. q  MAY_CACHE o  For request based policies only o  The response may be cacheable. The default if no response cacheability policy matches is to cache the response. q  INVAL o  Mark the object as invalid © 2007 Citrix Systems, Inc. — All rights reserved 17
  • 18. Cache Decision Time •  Cache, Nocache, Inval q  Cache decision @ request time & unless something that prevents decision like CL mistmatch, no policy eval @ response time •  MAY_CACHE, MAY_NOCACHE q  Cache decision @ response time © 2007 Citrix Systems, Inc. — All rights reserved 18
  • 19. Invalidate versus Expire •  Invalidate q  Invalidate will invalidate the object/"all objects in contentgroup". q  But the way it is done is it is optimized such a way that we don't look at each object and remove it but when you run expire command or when new request comes for the invalid object, it is then removed. q  We serve a full response (200) to client regardless of cache hit. •  Expire q  Only mark the object as expired q  Request comes in & instead of getting full response (i.e what we do for invalid object) we will send if-modified-since/if-none-match conditional request to back-end server. i.e can receive a 304. © 2007 Citrix Systems, Inc. — All rights reserved 19
  • 20. Content Group •  Every cached object => member of CG q  No CG, object => Default q  minhit – no. of hits before store •  Properties of objects can be controlled per contentgroup •  Dynamic versus Static - parametised •  Configurations per content-group are q  Expiry settings q  Portions of object considered for caching as well as Invalidation [Parameterized Caching] q  Pre-fetch objects before it gets expired (event-driven) q  Inserting headers (e.g. Via header) q  Memory related configuration for the objects and for this whole groups © 2007 Citrix Systems, Inc. — All rights reserved 20
  • 21. Flash Cache (FC) •  FC q Improves performance –> 1 req to back-end server q Concurrent requests queued on NS & single response served q set/add cache contentgroup <group_name> -flashCache YES q POWERFUL q Cannot enable with PET (ensures IC polls origin before serving) © 2007 Citrix Systems, Inc. — All rights reserved 21
  • 22. Some Other CG settings •  Expiry settings (blank by default) q Relexpiry – relative -> overrides server response settings q heurexpiryParam - % q Expire after complete response received •  If no expiry settings & none in response => cache miss but can do validation (non-fc) •  Cache controls q No cache depending on size or hits q Mem limit usage per group •  Works with FC J but probably not wise on significant groupsExpire after complete response received © 2007 Citrix Systems, Inc. — All rights reserved 22
  • 23. Cache Policies •  Built-In (begin with “__” & “ctx_”) q Greatly enhanced in 9.3 – should be sufficient for most •  Bound globally or per vServer q Easy-To-Administer & View within Global Policy Manager •  PI-based expression engine like other NS features © 2007 Citrix Systems, Inc. — All rights reserved 23
  • 24. Cache •  Built-In (begin with “__” ) q Greatly enhanced in 9.3 – should be sufficient for most •  Bound globally or per vServer q Easy-To-Administer & View within Global Policy Manager •  PI-based expression engine like other NS features © 2007 Citrix Systems, Inc. — All rights reserved 24
  • 25. Verification •  Three Verification Options (again sh cache pa) q Hostname (Sufficient for Most Companies) q Hostname & IP (Default) q DNS (Most Secure) © 2007 Citrix Systems, Inc. — All rights reserved 25
  • 26. Flushing the Cache •  Flush Cache q Remove stale content manually q Troubleshooting (preferred flush, disable, enable) q CLI – either CG or Object o  flush cache contentGroup content_group_html o  flush cache contentGroup ALL o  flush cache object –locator <0x….> q GUI – IC > Cache Objects •  Automatic CG flush once CG configuration is modified © 2007 Citrix Systems, Inc. — All rights reserved 26
  • 27. Cache Memory Management (1) •  BSD & PPE First •  7500 with 8gb RAM & 3 PE q 2gb for kernel, 3gb for PE & max 3gb for IC q Each PE has minimum of 1gb •  17500 – 48gb mem & 11 PE q 2gb for kernel, 23gb to PE & IC can take up to 23gb q Each PE cannot exceed 3.2gb address space •  IC takes up what’s left (!>0.5) © 2007 Citrix Systems, Inc. — All rights reserved 27
  • 28. Cache Memory Management (2) •  > set cache pa –memLimit 254 •  > sh cache pa | grep -i mem Memory usage limit: 10000 MBytes Memory usage limit (active value): 10000 Mbytes => reboot Maximum value for Memory usage limit: 15662 MBytes •  > sh cache contentgroup •  Memory Allocation Issues q cli> stat cache –detail | grep alloc Memory allocation failures 5741 => cache misses © 2007 Citrix Systems, Inc. — All rights reserved 28
  • 29. Cache Selectors •  Best practice to configure selectors (preferred over parameters) •  Named filter – locates particular objects in CG, not exact match •  Associate selector based on the request, not with responses •  Sample selectors •  http.req.url; http.req.method; client.ip.dst etc •  Use cases q One file only cached once regardless of hostname q Two copies of same file – compressed & uncompressed q Same file, same hostname but different VIPs & CGs © 2007 Citrix Systems, Inc. — All rights reserved 29
  • 30. “Not Cache” Best Practice •  Not Cache policies first q Once IC is turned on, it will begin to cache as per the default policies. o  This may cause confidential content to be cached by accidentThen cache known, good content q Start with images – jpegs, gifs q Check statistics for o  Memory allocation errors o  Hits o  Misses o  Expiries © 2007 Citrix Systems, Inc. — All rights reserved 30
  • 31. Cache HTTP Callout •  Callouts to external servers q Cache saves multiple requests •  add cache policy pol_callout -rule "CLIENT.IP.SRC.EQ (127.128.129.130 )" -action CACHE –storeInGroup •  bind cache global pol_callout –priority 100 –gotoPriorityExpression END –type REQ_DEFAULT •  sh cache object –locator <0x…> HTTP callout cell: YES HTTP callout name: callout1 HTTP callout type: TEXT HTTP callout response: NO © 2007 Citrix Systems, Inc. — All rights reserved 31
  • 32. Soft-Cache Expiry •  When a back-end server does not respond quickly to requests, an upstream NetScaler can serve responses from the cache. q Liberal interpretation of RFC q Protects back-end server further (e.g. lash-type event) q Serves stale data for a minimal amount of time •  Applies to 9.2.52.3 & above © 2007 Citrix Systems, Inc. — All rights reserved 32
  • 33. Configuration through Wizard (1) •  Easy-to-use J © 2007 Citrix Systems, Inc. — All rights reserved 33
  • 34. Configuration through Wizard (2) © 2007 Citrix Systems, Inc. — All rights reserved 34
  • 35. Configuration through Wizard (3) © 2007 Citrix Systems, Inc. — All rights reserved 35
  • 36. Example Configuration •  enable feature IC •  set cache parameter –memlimit 512 •  add cache contentgroup cg_image –relExpiry 600 –memLimit 100 – maxResSize 512 •  add cache policy cp1 –rule http.req.url.contains(“jpeg”) –action cache –storeingroup cg_image •  bind cache global cp1 –priority 1 –type REQ_DEFAULT cli> sh cache object 0x000000078b4200000004 cg_image //10.102.30.16:80/abc.jpeg © 2007 Citrix Systems, Inc. — All rights reserved 36
  • 37. Statistics via the CLI (1) •  cli> sh cache object 0x000000078b4200000004 cg_image //10.102.30.16:80/abc.jpeg •  cli> sh cache object –locator 0x000000078b4200000004 q  Address in Memory •  nscachemgr –a/-g <contentgroup> q  Shell Equivalent •  Use grep – POWERFUL for parsing output for hits, misses etc. © 2007 Citrix Systems, Inc. — All rights reserved 37
  • 38. Statistics via the CLI (2) © 2007 Citrix Systems, Inc. — All rights reserved 38
  • 39. Statistics via the GUI (1) © 2007 Citrix Systems, Inc. — All rights reserved 39
  • 40. Statistics via the GUI (2) © 2007 Citrix Systems, Inc. — All rights reserved 40
  • 41. Statistics via the GUI (3) © 2007 Citrix Systems, Inc. — All rights reserved 41
  • 42. Troubleshooting Tools1 •  Browser -> inconsistencies & can be very frustrating L q FF (HTTP Fox & Tamper Data Extensions but FF4 issues) q IE (7, 8, 9) -> Fiddler q Opera & Chrome -> as standard, no extensions •  Tracing & PCAP -> q Nstrace & Wireshark as usual J © 2007 Citrix Systems, Inc. — All rights reserved 42
  • 43. Troubleshooting Tools2 •  Paros (as a proxy in the middle) -> I now use Zap (Owasp project fork of Paros) •  CLI -> no user-cache to worry about J q wget •  wget –S –header=“If-None-Match:etag_value” http://test.com/file.jpg q curl o  curl –header “If-None-Match: etag_value” test.com/index.html © 2007 Citrix Systems, Inc. — All rights reserved 43
  • 44. Troubleshooting •  Cache turned on but no cache objects q  sh cache pa != Memory usage limit: 0 bytes q  Zero memory = cache misses o  Warning msg in 9.2 when sh cache object q  Check expiry settings? NS? Server? •  Blank entries in nscachemgr output? q  //10.90.196.76/ q  //10.90.196.76/citrix_logo.jpg q  Default caching properties of GET / HTTP/1.1 © 2007 Citrix Systems, Inc. — All rights reserved 44
  • 45. CTX Articles (just a snapshot) •  http://support.citrix.com/article/CTX124553 - how to IC •  http://support.citrix.com/article/CTX123753 - compressed content to unadvertised clients •  http://support.citrix.com/article/CTX126557 - caching uncompressed & compressed content of same file •  http://support.citrix.com/article/CTX128801 - same hostname/object but different vip twice •  http://support.citrix.com/article/CTX129118 - has my HTTP callout been cached •  http://support.citrix.com/article/CTX124718 - cache callout response •  http://support.citrix.com/article/CTX129734 - Soft Cache Expiry © 2007 Citrix Systems, Inc. — All rights reserved 45
  • 46. Extra Reading •  You can use perl, curl, wget, browser add-ons but I like wget – q  http://www.cyberciti.biz/tips/linux-wget-your-ultimate- command-line-downloader.html q  http://www.computerhope.com/unix/wget.htm q  Google “wget site:www.linuxquestions.org” q  Easy to write a basic shell script around it & doesn’t need to be too complicated •  RFC 2616 (HTTP) VERY IMPORTANT q  Section 13 (Caching) q  Section 14 (Headers) © 2007 Citrix Systems, Inc. — All rights reserved 46
  • 47. So with IC you can, take over…. © 2007 Citrix Systems, Inc. — All rights reserved 47
  • 48. Sláinte © 2007 Citrix Systems, Inc. — All rights reserved 48
  • 49. © 2007 Citrix Systems, Inc. — All rights reserved 49