<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Spinnaker – Configure Scaling</title>
    <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/productionize/scaling/</link>
    <description>Recent content in Configure Scaling on Spinnaker</description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/productionize/scaling/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: Horizontally Scale Spinnaker Services</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/productionize/scaling/horizontal-scaling/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/productionize/scaling/horizontal-scaling/</guid>
      <description>
        
        
        &lt;p&gt;This page will explain under which circumstances it can help to
run more than one copy of any single service, and what considerations have to
be made when doing so.&lt;/p&gt;
&lt;p&gt;This article assumes you have access to scale the individual Spinnaker
microservices, and the mechanics of this are not covered here.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Keep in mind, if you are deploying Spinnaker to Kubernetes, you&amp;rsquo;re more
likely to see benefits of horizontal scaling if you&amp;rsquo;ve already allocated
resource requests and limits for the services being scaled.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;scaling-clouddriver&#34;&gt;Scaling Clouddriver&lt;/h2&gt;
&lt;p&gt;Clouddriver is responsible for caching and retrieving infrastructure, and
submitting operations to your cloud provider. The former can be quite resource
intensive, and if you see that calls to&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;load cloud infrastructure (e.g. load balancers),&lt;/li&gt;
&lt;li&gt;perform cache updates (e.g. force cache refresh),&lt;/li&gt;
&lt;li&gt;search for specific resources (e.g. via the /search endpoint)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;are slowing down, it can help to add more replicas of the Clouddriver service.&lt;/p&gt;
&lt;p&gt;For a more technical explanation: every copy of Clouddriver tries to (on a
fixed interval) acquire locks to cache as many shards of your infrastructure as
possible. The way the shards are partitioned depends on your cloud
provider, and can be inferred from log statements. For example, a GCE
provider&amp;rsquo;s caching agents will write:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;GoogleInfrastructureProvider:my-google-account/europe-west1/GoogleRegionalAddressCachingAgent completed in 0.111s
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This indicates that the agent is responsible for a single account, region,
and resource type.&lt;/p&gt;
&lt;p&gt;In addition, as more nodes of Clouddriver are added, the number of reads
forwarded from Gate are more evenly distributed as well.&lt;/p&gt;
&lt;h2 id=&#34;scaling-orca&#34;&gt;Scaling Orca&lt;/h2&gt;
&lt;p&gt;Orca is Spinnaker&amp;rsquo;s execution engine, and manages running pipelines by
forwarding and waiting for the status of various tasks requested in a pipeline.
Central to Orca&amp;rsquo;s orchestration is a message queue, written into Redis and
shared among all Orca nodes. This is explained in more detail 
&lt;a href=&#34;https://blog.spinnaker.io/monitoring-spinnaker-part-1-4847f42a3abd&#34; target=&#34;_blank&#34;&gt;in this post on
monitoring
Spinnaker&lt;/a&gt;

for the curious.&lt;/p&gt;
&lt;p&gt;If you see slowdowns in some of Spinnaker&amp;rsquo;s operations, such as&amp;hellip;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;creating applications,&lt;/li&gt;
&lt;li&gt;running pipelines,&lt;/li&gt;
&lt;li&gt;submitting ad-hoc operations (clone, resize, rollback)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;hellip;it&amp;rsquo;s likely because Orca is having trouble processing messages from this
queue. One key metric to look at is &lt;code&gt;queue.ready.depth&lt;/code&gt;, which is the count of
messages that can be processed, but haven&amp;rsquo;t been (likely because your Orca
nodes are overworked). These messages are in the &amp;lsquo;ready&amp;rsquo; state. Adding more
nodes is a quick remediation, and should make Spinnaker more responsive.&lt;/p&gt;
&lt;p&gt;To track how long it&amp;rsquo;s taking for your messages to be handled while they&amp;rsquo;re in
this &amp;lsquo;ready&amp;rsquo; state , the key metric
to look at is &lt;code&gt;queue.message.lag&lt;/code&gt;, and should be closely tracked by your Spinnaker
operator. Ideally this number should average below a few hundred millisconds.&lt;/p&gt;

      </description>
    </item>
    
  </channel>
</rss>
