1"use strict";(globalThis.webpackChunkparca_dev=globalThis.webpackChunkparca_dev||[]).push([[5546],{5680(e,r,t){t.d(r,{xA:()=>u,yg:()=>g});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,n)}return t}function i(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?o(Object(t),!0).forEach(function(r){a(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function s(e,r){if(null==e)return{};var t,n,a=function(e,r){if(null==e)return{};var t,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=n.createContext({}),l=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},u=function(e){var r=l(e.components);return n.createElement(c.Provider,{value:r},e.children)},m={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},p=n.forwardRef(function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=l(t),g=a,y=p["".concat(c,".").concat(g)]||p[g]||m[g]||o;return t?n.createElement(y,i(i({ref:r},u),{},{components:t})):n.createElement(y,i({ref:r},u))});function g(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=p;var s={};for(var c in r)hasOwnProperty.call(r,c)&&(s[c]=r[c]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var l=2;l<o;l++)i[l]=t[l];return n.createElement.apply(null,i)}return n.createElement.apply(null,t)}p.displayName="MDXCreateElement"},7882(e,r,t){t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var n=t(8168),a=(t(6540),t(5680));const o={},i="Resource Usage",s={unversionedId:"resource-usage",id:"resource-usage",title:"Resource Usage",description:"Parca retains profile samples in memory and rotates the in-memory block out",source:"@site/docs/resource-usage.mdx",sourceDirName:".",slug:"/resource-usage",permalink:"/docs/resource-usage",draft:!1,editUrl:"https://github.com/parca-dev/parca.dev/edit/main/docs/resource-usage.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Configuration",permalink:"/docs/configuration"},next:{title:"Anatomy of icicle and flame graphs",permalink:"/docs/icicle-graph-anatomy"}},c={},l=[{value:"Flags to adjust the active memory footprint",id:"flags-to-adjust-the-active-memory-footprint",level:2}],u={toc:l};function m({components:e,...r}){return(0,a.yg)("wrapper",(0,n.A)({},u,r,{components:e,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"resource-usage"},"Resource Usage"),(0,a.yg)("p",null,"Parca retains profile samples in memory and rotates the in-memory block out\nwhen it reaches a certain size in bytes based on configuration settings."),(0,a.yg)("h1",{id:"recommended-resources"},"Recommended resources"),(0,a.yg)("p",null,"We recommend a rule of thumb of 60 bytes of memory for each sample.\nBy default the Parca-Agent profiles each core at 19Hz, which means you can expect\nParca to require 60 bytes ",(0,a.yg)("em",{parentName:"p"}," 19 ")," number of cores. So if you were profiling a 100 cores at a time\nyou'd expect Parca to ingest 114Kb/s."),(0,a.yg)("h2",{id:"flags-to-adjust-the-active-memory-footprint"},"Flags to adjust the active memory footprint"),(0,a.yg)("table",null,(0,a.yg)("thead",{parentName:"table"},(0,a.yg)("tr",{parentName:"thead"},(0,a.yg)("th",{parentName:"tr",align:null},"Flag"),(0,a.yg)("th",{parentName:"tr",align:null},"Usage"))),(0,a.yg)("tbody",{parentName:"table"},(0,a.yg)("tr",{parentName:"tbody"},(0,a.yg)("td",{parentName:"tr",align:null},(0,a.yg)("inlineCode",{parentName:"td"},"--storage-granule-size")),(0,a.yg)("td",{parentName:"tr",align:null},"By increasing the granule size you'll decrease nominal memory footprint but increase memory usage during compaction.")),(0,a.yg)("tr",{parentName:"tbody"},(0,a.yg)("td",{parentName:"tr",align:null},(0,a.yg)("inlineCode",{parentName:"td"},"--storage-active-memory")),(0,a.yg)("td",{parentName:"tr",align:null},"Adjust the number of bytes held in memory before being rotated out. This is the easiest way to adjust Parca's memory footprint.")),(0,a.yg)("tr",{parentName:"tbody"},(0,a.yg)("td",{parentName:"tr",align:null},(0,a.yg)("inlineCode",{parentName:"td"},"--storage-row-group-size")),(0,a.yg)("td",{parentName:"tr",align:null},"Smaller row groups increase memory footprint but increase query speed. Increasing row group size results in lower memory usage but slower queries.")))))}m.isMDXComponent=!0}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.