openc3-cosmos-tool-docs 5.14.1 → 5.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (204) hide show
  1. checksums.yaml +4 -4
  2. data/tools/staticdocs/404.html +3 -3
  3. data/tools/staticdocs/assets/css/styles.a4426211.css +1 -0
  4. data/tools/staticdocs/assets/js/{019369f3.d8613c30.js → 019369f3.3a124fd7.js} +1 -1
  5. data/tools/staticdocs/assets/js/{058ffc22.acfac831.js → 058ffc22.c85ad785.js} +1 -1
  6. data/tools/staticdocs/assets/js/0686a885.4d6b8154.js +1 -0
  7. data/tools/staticdocs/assets/js/{07876b9c.990c8af0.js → 07876b9c.b8d12431.js} +1 -1
  8. data/tools/staticdocs/assets/js/078dbab0.45ea4593.js +1 -0
  9. data/tools/staticdocs/assets/js/0f5d161c.dda04dbb.js +1 -0
  10. data/tools/staticdocs/assets/js/{0ff569c9.f11f548e.js → 0ff569c9.317b47d0.js} +1 -1
  11. data/tools/staticdocs/assets/js/103cc3be.a946540f.js +1 -0
  12. data/tools/staticdocs/assets/js/{13196248.1b40932b.js → 13196248.d8f8ef9f.js} +1 -1
  13. data/tools/staticdocs/assets/js/13c1b4e4.50ee3d02.js +1 -0
  14. data/tools/staticdocs/assets/js/{1b2b4b61.b662e271.js → 1b2b4b61.2556cd65.js} +1 -1
  15. data/tools/staticdocs/assets/js/{2047b354.cf71ed85.js → 2047b354.75fe47dd.js} +1 -1
  16. data/tools/staticdocs/assets/js/{22b3ac48.10ffd4c3.js → 22b3ac48.77516494.js} +1 -1
  17. data/tools/staticdocs/assets/js/2601.ca992ab9.js +1 -0
  18. data/tools/staticdocs/assets/js/26b8abb2.dcdf815e.js +1 -0
  19. data/tools/staticdocs/assets/js/{2923e883.0cbdcbc5.js → 2923e883.ed90d0a7.js} +1 -1
  20. data/tools/staticdocs/assets/js/{2bb7bf90.41136655.js → 2bb7bf90.c642620c.js} +1 -1
  21. data/tools/staticdocs/assets/js/3dd7ef3b.f84c6956.js +1 -0
  22. data/tools/staticdocs/assets/js/{3df159b4.6c6b5f85.js → 3df159b4.ff98bfab.js} +1 -1
  23. data/tools/staticdocs/assets/js/40365d27.c318f801.js +1 -0
  24. data/tools/staticdocs/assets/js/{411898ad.fb3b44cb.js → 411898ad.e29e2db3.js} +1 -1
  25. data/tools/staticdocs/assets/js/{42170351.99726677.js → 42170351.15f2f1e3.js} +1 -1
  26. data/tools/staticdocs/assets/js/43652efd.4e7d6a97.js +1 -0
  27. data/tools/staticdocs/assets/js/53ca7c5b.3f1245d5.js +1 -0
  28. data/tools/staticdocs/assets/js/54d0d530.769f5473.js +1 -0
  29. data/tools/staticdocs/assets/js/55cdbca5.695875ea.js +1 -0
  30. data/tools/staticdocs/assets/js/5723.f6123e37.js +1 -0
  31. data/tools/staticdocs/assets/js/{1131.f9e1547d.js → 5778.7d36f1c2.js} +1 -1
  32. data/tools/staticdocs/assets/js/5b233ba7.0029b2f5.js +1 -0
  33. data/tools/staticdocs/assets/js/{5bc719f6.80666891.js → 5bc719f6.84f6ce9e.js} +1 -1
  34. data/tools/staticdocs/assets/js/{5c6ce5ec.3cb1b75a.js → 5c6ce5ec.8667906a.js} +1 -1
  35. data/tools/staticdocs/assets/js/5e3ed378.91d6735f.js +1 -0
  36. data/tools/staticdocs/assets/js/5fe211ef.1d991947.js +1 -0
  37. data/tools/staticdocs/assets/js/64630c4f.a229ae1d.js +1 -0
  38. data/tools/staticdocs/assets/js/6831b732.a77e4761.js +1 -0
  39. data/tools/staticdocs/assets/js/696b4199.2700ad91.js +1 -0
  40. data/tools/staticdocs/assets/js/{6b210247.0db8db18.js → 6b210247.074332a1.js} +1 -1
  41. data/tools/staticdocs/assets/js/6b65133b.109a6bef.js +1 -0
  42. data/tools/staticdocs/assets/js/6f92e431.67f5a7a4.js +1 -0
  43. data/tools/staticdocs/assets/js/{72c6d8a8.41b091e3.js → 72c6d8a8.5fca8d68.js} +1 -1
  44. data/tools/staticdocs/assets/js/75373ac0.6a0a4fa2.js +1 -0
  45. data/tools/staticdocs/assets/js/75e64983.e31793e1.js +1 -0
  46. data/tools/staticdocs/assets/js/7760.7f593c4f.js +2 -0
  47. data/tools/staticdocs/assets/js/7918.25ec42db.js +1 -0
  48. data/tools/staticdocs/assets/js/{867640d5.7d9b46cc.js → 867640d5.a8f59357.js} +1 -1
  49. data/tools/staticdocs/assets/js/89e76475.de702714.js +1 -0
  50. data/tools/staticdocs/assets/js/8f7843ee.0f25fdc3.js +1 -0
  51. data/tools/staticdocs/assets/js/9424f0b3.66b19930.js +1 -0
  52. data/tools/staticdocs/assets/js/97535711.ddc0f5af.js +1 -0
  53. data/tools/staticdocs/assets/js/99581c43.0767018a.js +1 -0
  54. data/tools/staticdocs/assets/js/{99b59eea.56ab3bff.js → 99b59eea.d4dd9989.js} +1 -1
  55. data/tools/staticdocs/assets/js/9d6e81d0.c31feabc.js +1 -0
  56. data/tools/staticdocs/assets/js/9fb6059a.30085d79.js +1 -0
  57. data/tools/staticdocs/assets/js/{a507c363.b04cc959.js → a507c363.198e9246.js} +1 -1
  58. data/tools/staticdocs/assets/js/a677c089.48b6c791.js +1 -0
  59. data/tools/staticdocs/assets/js/{a9987364.a33207e6.js → a9987364.cfb3492e.js} +1 -1
  60. data/tools/staticdocs/assets/js/aa6b6c1b.065a8213.js +1 -0
  61. data/tools/staticdocs/assets/js/b4596165.b4c6c1b8.js +1 -0
  62. data/tools/staticdocs/assets/js/b6d70f94.66d95cb7.js +1 -0
  63. data/tools/staticdocs/assets/js/b9f60ba6.655a4097.js +1 -0
  64. data/tools/staticdocs/assets/js/bd0034eb.ff7f6265.js +1 -0
  65. data/tools/staticdocs/assets/js/c24eae19.db62873a.js +1 -0
  66. data/tools/staticdocs/assets/js/{cb8c3f08.bd7af12d.js → cb8c3f08.f669adda.js} +1 -1
  67. data/tools/staticdocs/assets/js/cd879be4.6ee752c7.js +1 -0
  68. data/tools/staticdocs/assets/js/d1b923aa.e7ee188a.js +1 -0
  69. data/tools/staticdocs/assets/js/d1bfc316.963c2477.js +1 -0
  70. data/tools/staticdocs/assets/js/{d24bf9b6.a8d698fc.js → d24bf9b6.31d82456.js} +1 -1
  71. data/tools/staticdocs/assets/js/{d57a4b5d.743b976b.js → d57a4b5d.905988ec.js} +1 -1
  72. data/tools/staticdocs/assets/js/{d5d77c37.cd2d8652.js → d5d77c37.80e1a28b.js} +1 -1
  73. data/tools/staticdocs/assets/js/{d797a795.9243eac2.js → d797a795.5725bf2b.js} +1 -1
  74. data/tools/staticdocs/assets/js/{d8ca4191.abd56e6c.js → d8ca4191.56c22a69.js} +1 -1
  75. data/tools/staticdocs/assets/js/{d9b92eba.d632d375.js → d9b92eba.16d983a0.js} +1 -1
  76. data/tools/staticdocs/assets/js/{db8fa1d0.b9ed5eb0.js → db8fa1d0.c35b153c.js} +1 -1
  77. data/tools/staticdocs/assets/js/dc5f7beb.88b0f00b.js +1 -0
  78. data/tools/staticdocs/assets/js/{e501b0d1.21aadf25.js → e501b0d1.3aa571ae.js} +1 -1
  79. data/tools/staticdocs/assets/js/{ebec1ccb.4fc9c662.js → ebec1ccb.a801549e.js} +1 -1
  80. data/tools/staticdocs/assets/js/{f15615f1.0d1e925a.js → f15615f1.0b19ae07.js} +1 -1
  81. data/tools/staticdocs/assets/js/fd886806.57eeb84b.js +1 -0
  82. data/tools/staticdocs/assets/js/main.a6fe34c0.js +2 -0
  83. data/tools/staticdocs/assets/js/runtime~main.256dc9a2.js +1 -0
  84. data/tools/staticdocs/docs/configuration/command.html +169 -75
  85. data/tools/staticdocs/docs/configuration/format.html +52 -23
  86. data/tools/staticdocs/docs/configuration/interfaces.html +90 -27
  87. data/tools/staticdocs/docs/configuration/plugins.html +163 -114
  88. data/tools/staticdocs/docs/configuration/protocols.html +87 -47
  89. data/tools/staticdocs/docs/configuration/ssl-tls.html +103 -32
  90. data/tools/staticdocs/docs/configuration/table.html +114 -49
  91. data/tools/staticdocs/docs/configuration/target.html +31 -23
  92. data/tools/staticdocs/docs/configuration/telemetry-screens.html +442 -184
  93. data/tools/staticdocs/docs/configuration/telemetry.html +176 -76
  94. data/tools/staticdocs/docs/configuration.html +3 -3
  95. data/tools/staticdocs/docs/development/curl.html +55 -12
  96. data/tools/staticdocs/docs/development/developing.html +84 -72
  97. data/tools/staticdocs/docs/development/host-install.html +21 -8
  98. data/tools/staticdocs/docs/development/json-api.html +31 -19
  99. data/tools/staticdocs/docs/development/log-structure.html +12 -12
  100. data/tools/staticdocs/docs/development/roadmap.html +32 -6
  101. data/tools/staticdocs/docs/development/streaming-api.html +82 -10
  102. data/tools/staticdocs/docs/development/testing.html +24 -15
  103. data/tools/staticdocs/docs/development.html +4 -4
  104. data/tools/staticdocs/docs/getting-started/generators.html +108 -34
  105. data/tools/staticdocs/docs/getting-started/gettingstarted.html +71 -23
  106. data/tools/staticdocs/docs/getting-started/installation.html +34 -23
  107. data/tools/staticdocs/docs/getting-started/key_concepts.html +34 -34
  108. data/tools/staticdocs/docs/getting-started/podman.html +55 -24
  109. data/tools/staticdocs/docs/getting-started/requirements.html +19 -19
  110. data/tools/staticdocs/docs/getting-started/upgrading.html +15 -10
  111. data/tools/staticdocs/docs/getting-started.html +3 -3
  112. data/tools/staticdocs/docs/guides/bridges.html +62 -18
  113. data/tools/staticdocs/docs/guides/cfs.html +183 -43
  114. data/tools/staticdocs/docs/guides/custom-widgets.html +45 -18
  115. data/tools/staticdocs/docs/guides/little-endian-bitfields.html +13 -4
  116. data/tools/staticdocs/docs/guides/local-mode.html +19 -14
  117. data/tools/staticdocs/docs/guides/logging.html +11 -11
  118. data/tools/staticdocs/docs/guides/monitoring.html +136 -21
  119. data/tools/staticdocs/docs/guides/performance.html +25 -16
  120. data/tools/staticdocs/docs/guides/raspberrypi.html +23 -8
  121. data/tools/staticdocs/docs/guides/script-writing.html +388 -83
  122. data/tools/staticdocs/docs/guides/scripting-api.html +1340 -477
  123. data/tools/staticdocs/docs/guides.html +3 -3
  124. data/tools/staticdocs/docs/meta/contributing.html +18 -13
  125. data/tools/staticdocs/docs/meta/licenses.html +29 -11
  126. data/tools/staticdocs/docs/meta/philosophy.html +3 -3
  127. data/tools/staticdocs/docs/meta/xtce.html +15 -13
  128. data/tools/staticdocs/docs/meta.html +3 -3
  129. data/tools/staticdocs/docs/privacy.html +18 -18
  130. data/tools/staticdocs/docs/tools/autonomic.html +21 -21
  131. data/tools/staticdocs/docs/tools/bucket-explorer.html +12 -12
  132. data/tools/staticdocs/docs/tools/calendar.html +20 -20
  133. data/tools/staticdocs/docs/tools/cmd-sender.html +14 -14
  134. data/tools/staticdocs/docs/tools/cmd-tlm-server.html +22 -22
  135. data/tools/staticdocs/docs/tools/data-extractor.html +25 -25
  136. data/tools/staticdocs/docs/tools/data-viewer.html +12 -12
  137. data/tools/staticdocs/docs/tools/handbooks.html +5 -5
  138. data/tools/staticdocs/docs/tools/limits-monitor.html +18 -18
  139. data/tools/staticdocs/docs/tools/packet-viewer.html +14 -14
  140. data/tools/staticdocs/docs/tools/script-runner.html +73 -34
  141. data/tools/staticdocs/docs/tools/table-manager.html +47 -12
  142. data/tools/staticdocs/docs/tools/tlm-grapher.html +21 -21
  143. data/tools/staticdocs/docs/tools/tlm-viewer.html +16 -16
  144. data/tools/staticdocs/docs/tools.html +3 -3
  145. data/tools/staticdocs/docs.html +13 -13
  146. data/tools/staticdocs/index.html +3 -3
  147. data/tools/staticdocs/lunr-index-1710043920959.json +1 -0
  148. data/tools/staticdocs/lunr-index.json +1 -1
  149. data/tools/staticdocs/markdown-page.html +4 -4
  150. data/tools/staticdocs/search-doc-1710043920959.json +1 -0
  151. data/tools/staticdocs/search-doc.json +1 -1
  152. metadata +87 -87
  153. data/tools/staticdocs/assets/css/styles.dd31dbff.css +0 -1
  154. data/tools/staticdocs/assets/js/0686a885.b4118c45.js +0 -1
  155. data/tools/staticdocs/assets/js/078dbab0.d34d0a8f.js +0 -1
  156. data/tools/staticdocs/assets/js/0f5d161c.d4d5d4dc.js +0 -1
  157. data/tools/staticdocs/assets/js/103cc3be.53ec680c.js +0 -1
  158. data/tools/staticdocs/assets/js/12.afe230eb.js +0 -1
  159. data/tools/staticdocs/assets/js/13c1b4e4.a9ce7463.js +0 -1
  160. data/tools/staticdocs/assets/js/1670.3df3e214.js +0 -1
  161. data/tools/staticdocs/assets/js/2624.ae6ba6f0.js +0 -1
  162. data/tools/staticdocs/assets/js/26b8abb2.98364dbd.js +0 -1
  163. data/tools/staticdocs/assets/js/3dd7ef3b.5133eebe.js +0 -1
  164. data/tools/staticdocs/assets/js/40365d27.b31cf9ac.js +0 -1
  165. data/tools/staticdocs/assets/js/43652efd.f9ce2508.js +0 -1
  166. data/tools/staticdocs/assets/js/4657.780d60d2.js +0 -2
  167. data/tools/staticdocs/assets/js/53ca7c5b.5ba66d69.js +0 -1
  168. data/tools/staticdocs/assets/js/54d0d530.29eb7035.js +0 -1
  169. data/tools/staticdocs/assets/js/55cdbca5.9562da85.js +0 -1
  170. data/tools/staticdocs/assets/js/5b233ba7.b7a30c7f.js +0 -1
  171. data/tools/staticdocs/assets/js/5e3ed378.c40da631.js +0 -1
  172. data/tools/staticdocs/assets/js/5fe211ef.9938cdb0.js +0 -1
  173. data/tools/staticdocs/assets/js/64630c4f.d3aaa17e.js +0 -1
  174. data/tools/staticdocs/assets/js/6831b732.176e2062.js +0 -1
  175. data/tools/staticdocs/assets/js/696b4199.68411c90.js +0 -1
  176. data/tools/staticdocs/assets/js/6b65133b.3b600a13.js +0 -1
  177. data/tools/staticdocs/assets/js/6f92e431.0e99b0f7.js +0 -1
  178. data/tools/staticdocs/assets/js/75373ac0.f2ff00fb.js +0 -1
  179. data/tools/staticdocs/assets/js/75e64983.6078b2bb.js +0 -1
  180. data/tools/staticdocs/assets/js/89e76475.76286adb.js +0 -1
  181. data/tools/staticdocs/assets/js/8f7843ee.7aaf5f45.js +0 -1
  182. data/tools/staticdocs/assets/js/9424f0b3.d0685f0f.js +0 -1
  183. data/tools/staticdocs/assets/js/97535711.7354a61a.js +0 -1
  184. data/tools/staticdocs/assets/js/99581c43.9077ef97.js +0 -1
  185. data/tools/staticdocs/assets/js/9d6e81d0.48e17a84.js +0 -1
  186. data/tools/staticdocs/assets/js/9fb6059a.709498de.js +0 -1
  187. data/tools/staticdocs/assets/js/a677c089.759b7b09.js +0 -1
  188. data/tools/staticdocs/assets/js/aa6b6c1b.c81fb740.js +0 -1
  189. data/tools/staticdocs/assets/js/b4596165.0d43540a.js +0 -1
  190. data/tools/staticdocs/assets/js/b6d70f94.67e3cf1e.js +0 -1
  191. data/tools/staticdocs/assets/js/b9f60ba6.4f87cb90.js +0 -1
  192. data/tools/staticdocs/assets/js/bd0034eb.caedd00a.js +0 -1
  193. data/tools/staticdocs/assets/js/c24eae19.541e6a95.js +0 -1
  194. data/tools/staticdocs/assets/js/cd879be4.5d8c0503.js +0 -1
  195. data/tools/staticdocs/assets/js/d1b923aa.2c753a51.js +0 -1
  196. data/tools/staticdocs/assets/js/d1bfc316.3ba6fac4.js +0 -1
  197. data/tools/staticdocs/assets/js/dc5f7beb.002b1519.js +0 -1
  198. data/tools/staticdocs/assets/js/fd886806.823bd757.js +0 -1
  199. data/tools/staticdocs/assets/js/main.89007ebb.js +0 -2
  200. data/tools/staticdocs/assets/js/runtime~main.8f84aa81.js +0 -1
  201. data/tools/staticdocs/lunr-index-1706136992441.json +0 -1
  202. data/tools/staticdocs/search-doc-1706136992441.json +0 -1
  203. /data/tools/staticdocs/assets/js/{4657.780d60d2.js.LICENSE.txt → 7760.7f593c4f.js.LICENSE.txt} +0 -0
  204. /data/tools/staticdocs/assets/js/{main.89007ebb.js.LICENSE.txt → main.a6fe34c0.js.LICENSE.txt} +0 -0
@@ -3,27 +3,27 @@
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
5
  <meta name="generator" content="Docusaurus v3.1.0">
6
- <title data-rh="true">Performance | OpenC3 Docs</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.openc3.com/tools/staticdocs/docs/guides/performance"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Performance | OpenC3 Docs"><meta data-rh="true" name="description" content="The COSMOS architecture was created with scalability in mind. Our goal is to support an unlimited number of connections and use cloud technologies to scale. Only COSMOS Enterprise Edition supports Kubernetes and the various cloud platforms which allow this level of scalability. While true scalability is only achieved in COSMOS Enterprise, both Open Source and Enterprise have various levels of observability and configuration settings which can affect performance."><meta data-rh="true" property="og:description" content="The COSMOS architecture was created with scalability in mind. Our goal is to support an unlimited number of connections and use cloud technologies to scale. Only COSMOS Enterprise Edition supports Kubernetes and the various cloud platforms which allow this level of scalability. While true scalability is only achieved in COSMOS Enterprise, both Open Source and Enterprise have various levels of observability and configuration settings which can affect performance."><link data-rh="true" rel="icon" href="/tools/staticdocs/img/favicon.png"><link data-rh="true" rel="canonical" href="https://docs.openc3.com/tools/staticdocs/docs/guides/performance"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/performance" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/performance" hreflang="x-default"><link rel="stylesheet" href="/tools/staticdocs/assets/css/styles.dd31dbff.css">
7
- <script src="/tools/staticdocs/assets/js/runtime~main.8f84aa81.js" defer="defer"></script>
8
- <script src="/tools/staticdocs/assets/js/main.89007ebb.js" defer="defer"></script>
6
+ <title data-rh="true">Performance | OpenC3 Docs</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.openc3.com/tools/staticdocs/docs/guides/performance"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Performance | OpenC3 Docs"><meta data-rh="true" name="description" content="The COSMOS architecture was created with scalability in mind. Our goal is to support an unlimited number of connections and use cloud technologies to scale. Only COSMOS Enterprise Edition supports Kubernetes and the various cloud platforms which allow this level of scalability. While true scalability is only achieved in COSMOS Enterprise, both Open Source and Enterprise have various levels of observability and configuration settings which can affect performance."><meta data-rh="true" property="og:description" content="The COSMOS architecture was created with scalability in mind. Our goal is to support an unlimited number of connections and use cloud technologies to scale. Only COSMOS Enterprise Edition supports Kubernetes and the various cloud platforms which allow this level of scalability. While true scalability is only achieved in COSMOS Enterprise, both Open Source and Enterprise have various levels of observability and configuration settings which can affect performance."><link data-rh="true" rel="icon" href="/tools/staticdocs/img/favicon.png"><link data-rh="true" rel="canonical" href="https://docs.openc3.com/tools/staticdocs/docs/guides/performance"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/performance" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/performance" hreflang="x-default"><link rel="stylesheet" href="/tools/staticdocs/assets/css/styles.a4426211.css">
7
+ <script src="/tools/staticdocs/assets/js/runtime~main.256dc9a2.js" defer="defer"></script>
8
+ <script src="/tools/staticdocs/assets/js/main.a6fe34c0.js" defer="defer"></script>
9
9
  </head>
10
10
  <body class="navigation-with-keyboard">
11
- <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"dark")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_G6ar" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/tools/staticdocs/"><div class="navbar__logo"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--light_DIHH"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--dark_Bv2M"></div><b class="navbar__title text--truncate">OpenC3 Docs</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/tools/staticdocs/docs">Documentation</a><a href="https://openc3.com/enterprise/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Enterprise</a></div><div class="navbar__items navbar__items--right"><div class="navbarSearchContainer_bmvg"><div class="navbar__search"><span aria-label="expand searchbar" role="button" class="search-icon" tabindex="0"></span><input id="search_input_react" type="search" placeholder="Loading..." aria-label="Search" class="navbar__search-input search-bar" disabled=""></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_UyTV"><div class="docsWrapper_XLvK"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_z1FD" type="button"></button><div class="docRoot_HciC"><aside class="theme-doc-sidebar-container docSidebarContainer_e5ai"><div class="sidebarViewport_N8x0"><div class="sidebar_vJCc"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_qiME"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/tools/staticdocs/docs">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/getting-started">Getting Started</a><button aria-label="Expand sidebar category &#x27;Getting Started&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/configuration">Configuration</a><button aria-label="Expand sidebar category &#x27;Configuration&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/tools">Tools</a><button aria-label="Expand sidebar category &#x27;Tools&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/tools/staticdocs/docs/guides">Guides</a><button aria-label="Collapse sidebar category &#x27;Guides&#x27;" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/bridges">Bridges</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/cfs">COSMOS and NASA cFS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/custom-widgets">Custom Widgets</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/little-endian-bitfields">Little Endian Bitfields</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/local-mode">Local Mode</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/logging">Logging</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/monitoring">Monitoring</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/tools/staticdocs/docs/guides/performance">Performance</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/raspberrypi">Raspberry Pi</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/script-writing">Script Writing Guide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/scripting-api">Scripting API Guide</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/development">Development</a><button aria-label="Expand sidebar category &#x27;Development&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/meta">Meta</a><button aria-label="Expand sidebar category &#x27;Meta&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/tools/staticdocs/docs/privacy">OpenC3, Inc. Privacy Policy</a></li></ul></nav></div></div></aside><main class="docMainContainer_namt"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_YAwJ"><div class="docItemContainer_Rv5Z"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_zCmv" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/tools/staticdocs/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_JFrk"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/tools/staticdocs/docs/guides"><span itemprop="name">Guides</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Performance</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_O_Qc theme-doc-toc-mobile tocMobile_tjDr"><button type="button" class="clean-btn tocCollapsibleButton_htYj">On this page</button></div><div class="theme-doc-markdown markdown"><p>The COSMOS architecture was created with scalability in mind. Our goal is to support an unlimited number of connections and use cloud technologies to scale. Only <a href="https://openc3.com/enterprise" target="_blank" rel="noopener noreferrer">COSMOS Enterprise Edition</a> supports Kubernetes and the various cloud platforms which allow this level of scalability. While true scalability is only achieved in COSMOS Enterprise, both Open Source and Enterprise have various levels of observability and configuration settings which can affect performance.</p>
12
- <h1>COSMOS Hardware Requirements</h1>
13
- <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="memory">Memory<a href="#memory" class="hash-link" aria-label="Direct link to Memory" title="Direct link to Memory">​</a></h2>
11
+ <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"dark")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_G6ar" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/tools/staticdocs/"><div class="navbar__logo"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--light_DIHH"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--dark_Bv2M"></div><b class="navbar__title text--truncate">OpenC3 Docs</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/tools/staticdocs/docs">Documentation</a><a href="https://openc3.com/enterprise/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Enterprise</a></div><div class="navbar__items navbar__items--right"><div class="navbarSearchContainer_bmvg"><div class="navbar__search"><span aria-label="expand searchbar" role="button" class="search-icon" tabindex="0"></span><input id="search_input_react" type="search" placeholder="Loading..." aria-label="Search" class="navbar__search-input search-bar" disabled=""></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_UyTV"><div class="docsWrapper_XLvK"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_z1FD" type="button"></button><div class="docRoot_HciC"><aside class="theme-doc-sidebar-container docSidebarContainer_e5ai"><div class="sidebarViewport_N8x0"><div class="sidebar_vJCc"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_qiME"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/tools/staticdocs/docs">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/getting-started">Getting Started</a><button aria-label="Expand sidebar category &#x27;Getting Started&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/configuration">Configuration</a><button aria-label="Expand sidebar category &#x27;Configuration&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/tools">Tools</a><button aria-label="Expand sidebar category &#x27;Tools&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/tools/staticdocs/docs/guides">Guides</a><button aria-label="Collapse sidebar category &#x27;Guides&#x27;" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/bridges">Bridges</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/cfs">COSMOS and NASA cFS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/custom-widgets">Custom Widgets</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/little-endian-bitfields">Little Endian Bitfields</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/local-mode">Local Mode</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/logging">Logging</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/monitoring">Monitoring</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/tools/staticdocs/docs/guides/performance">Performance</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/raspberrypi">Raspberry Pi</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/script-writing">Script Writing Guide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/scripting-api">Scripting API Guide</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/development">Development</a><button aria-label="Expand sidebar category &#x27;Development&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/meta">Meta</a><button aria-label="Expand sidebar category &#x27;Meta&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/tools/staticdocs/docs/privacy">OpenC3, Inc. Privacy Policy</a></li></ul></nav></div></div></aside><main class="docMainContainer_namt"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_YAwJ"><div class="docItemContainer_Rv5Z"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_zCmv" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/tools/staticdocs/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_JFrk"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/tools/staticdocs/docs/guides"><span itemprop="name">Guides</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Performance</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_O_Qc theme-doc-toc-mobile tocMobile_tjDr"><button type="button" class="clean-btn tocCollapsibleButton_htYj">On this page</button></div><div class="theme-doc-markdown markdown"><p>The COSMOS architecture was created with scalability in mind. Our goal is to support an unlimited number of connections and use cloud technologies to scale. Only <a href="https://openc3.com/enterprise">COSMOS Enterprise Edition</a> supports Kubernetes and the various cloud platforms which allow this level of scalability. While true scalability is only achieved in COSMOS Enterprise, both Open Source and Enterprise have various levels of observability and configuration settings which can affect performance.</p>
12
+ <h1 id="cosmos-hardware-requirements">COSMOS Hardware Requirements</h1>
13
+ <h2 id="memory">Memory</h2>
14
14
  <p>COSMOS can run on a Raspberry Pi up to a Kubernetes cluster in the cloud. On all platforms the key performance factor is the number and complexity of the targets and their defined packets. Targets can vary from simple targets taking 100 MB of RAM to complex targets taking 400 MB. The base COSMOS containers require about 800 MB of RAM. A good rule of thumb is to average about 300 MB of RAM for targets. As an example data point, the COSMOS Demo has 4 targets, two complex (INST &amp; INST2) and two relatively simple (EXAMPLE &amp; TEMPLATED), and requires 800 MB of RAM (on top of the 800 MB of base container RAM).</p>
15
15
  <ul>
16
16
  <li>Base RAM MB Calculator = 800 + (num targets) * 300</li>
17
17
  </ul>
18
- <p>In addition, the Redis streams contain the last 10 min of both raw and decommutated data from all targets. Thus you must wait ~15min to truly see what the high water memory mark will be. In the COSMOS Demo the INST &amp; INST2 targets are fairly simple with four 1Hz packet of ~15 items and one 10Hz packet with 20 items. This only causes 50 MiB of redis RAM usage according to <code>docker stats</code>. Installing the COSMOS <a href="https://github.com/OpenC3/openc3-cosmos-load-sim" target="_blank" rel="noopener noreferrer">LoadSim</a> with 10 packets with 1000 items each at 10Hz pushed the redis memory usage to about 350 MiB.</p>
19
- <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="cpu">CPU<a href="#cpu" class="hash-link" aria-label="Direct link to CPU" title="Direct link to CPU">​</a></h2>
18
+ <p>In addition, the Redis streams contain the last 10 min of both raw and decommutated data from all targets. Thus you must wait ~15min to truly see what the high water memory mark will be. In the COSMOS Demo the INST &amp; INST2 targets are fairly simple with four 1Hz packet of ~15 items and one 10Hz packet with 20 items. This only causes 50 MiB of redis RAM usage according to <code>docker stats</code>. Installing the COSMOS <a href="https://github.com/OpenC3/openc3-cosmos-load-sim">LoadSim</a> with 10 packets with 1000 items each at 10Hz pushed the redis memory usage to about 350 MiB.</p>
19
+ <h2 id="cpu">CPU</h2>
20
20
  <p>Another consideration is the CPU performance. In the Open Source Edition, by default COSMOS spawns off 2 microservices per target. One combines packet logging and decommutation of the data and the other performs data reduction. In COSMOS Enterprise Edition on Kubernetes, each process becomes an independent container that is deployed on the cluster allowing horizontal scaling.</p>
21
21
  <p>The COSMOS command and telemetry API and script running API servers should have a dedicated core while targets can generally share cores. It&#x27;s hard to provide a general rule of thumb with the wide variety of architectures, clock speeds, and core counts. The best practice is to install COSMOS with the expected load and do some monitoring with <code>htop</code> to visualize the load on the various cores. Any time a single core gets overloaded (100%) this is a concern and system slowdown can occur.</p>
22
- <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="performance-comparison">Performance Comparison<a href="#performance-comparison" class="hash-link" aria-label="Direct link to Performance Comparison" title="Direct link to Performance Comparison">​</a></h2>
23
- <p>Performance characterization was performed in Azure on a Standard D4s v5 (4 vcpus, 16 GiB memory) chosen to allow virtualization per <a href="https://docs.docker.com/desktop/vm-vdi/#turn-on-nested-virtualization-on-microsoft-hyper-v" target="_blank" rel="noopener noreferrer">Docker</a>. COSMOS <a href="https://github.com/OpenC3/cosmos-enterprise/releases/tag/v5.9.1" target="_blank" rel="noopener noreferrer">5.9.1</a> Enterprise Edition was installed on both Windows 11 Pro <sup><a href="#user-content-fn-1" id="user-content-fnref-1" data-footnote-ref="true" aria-describedby="footnote-label">1</a></sup> and Ubuntu 22. Note: Enterprise Edition was not utilizing Kubernetes, just Docker. Testing involved starting the COSMOS Demo, connecting all targets (EXAMPLE, INST, INST2, TEMPLATED), opening the following TlmViewer screens (ADCS, ARRAY, BLOCK, COMMANDING, HS, LATEST, LIMITS, OTHER, PARAMS, SIMPLE, TABS) and creating two TlmGrapher graphs consisting of INST HEALTH_STATUS TEMP[1-4] and INST ADCS POS[X,Y,Z] and INST ADCS VEL[X,Y,Z]. This was allowed to run for 1hr and results were collected using <code>htop</code>:</p>
22
+ <h2 id="performance-comparison">Performance Comparison</h2>
23
+ <p>Performance characterization was performed in Azure on a Standard D4s v5 (4 vcpus, 16 GiB memory) chosen to allow virtualization per <a href="https://docs.docker.com/desktop/vm-vdi/#turn-on-nested-virtualization-on-microsoft-hyper-v">Docker</a>. COSMOS <a href="https://github.com/OpenC3/cosmos-enterprise/releases/tag/v5.9.1">5.9.1</a> Enterprise Edition was installed on both Windows 11 Pro <sup><a href="#user-content-fn-1" id="user-content-fnref-1" data-footnote-ref="true" aria-describedby="footnote-label">1</a></sup> and Ubuntu 22. Note: Enterprise Edition was not utilizing Kubernetes, just Docker. Testing involved starting the COSMOS Demo, connecting all targets (EXAMPLE, INST, INST2, TEMPLATED), opening the following TlmViewer screens (ADCS, ARRAY, BLOCK, COMMANDING, HS, LATEST, LIMITS, OTHER, PARAMS, SIMPLE, TABS) and creating two TlmGrapher graphs consisting of INST HEALTH_STATUS TEMP[1-4] and INST ADCS POS[X,Y,Z] and INST ADCS VEL[X,Y,Z]. This was allowed to run for 1hr and results were collected using <code>htop</code>:</p>
24
24
  <table><thead><tr><th style="text-align:left">Platform</th><th style="text-align:left">Core CPU %</th><th style="text-align:left">RAM</th></tr></thead><tbody><tr><td style="text-align:left">Windows 11 Pro</td><td style="text-align:left">12% 12% 10% 10%</td><td style="text-align:left">3.9G / 7.7G</td></tr><tr><td style="text-align:left">Headless Ubuntu 22</td><td style="text-align:left">7% 7% 8% 6%</td><td style="text-align:left">3.2G / 15.6G</td></tr></tbody></table>
25
25
  <ul>
26
- <li>Windows was only allocated 8 GB of RAM due to the <a href="https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configuration-setting-for-wslconfig" target="_blank" rel="noopener noreferrer">.wslconfig</a> settings.</li>
26
+ <li>Windows was only allocated 8 GB of RAM due to the <a href="https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configuration-setting-for-wslconfig">.wslconfig</a> settings.</li>
27
27
  <li>Since Ubuntu was running headless, the screens and graphs were brought up on another machine.</li>
28
28
  </ul>
29
29
  <p><code>docker stats</code> was also run to show individual container cpu and memory usage:</p>
@@ -32,7 +32,7 @@
32
32
  <li>memory profiles are similar between the two platforms</li>
33
33
  <li>redis-ephemeral isn&#x27;t using much memory on the base Demo with its small packets</li>
34
34
  </ul>
35
- <p>At this point the COSMOS <a href="https://github.com/OpenC3/openc3-cosmos-load-sim" target="_blank" rel="noopener noreferrer">LoadSim</a> was installed with default settings which creates 10 packets with 1000 items each at 10Hz (110kB/s). After a 1 hr soak, htop now indicated:</p>
35
+ <p>At this point the COSMOS <a href="https://github.com/OpenC3/openc3-cosmos-load-sim">LoadSim</a> was installed with default settings which creates 10 packets with 1000 items each at 10Hz (110kB/s). After a 1 hr soak, htop now indicated:</p>
36
36
  <table><thead><tr><th style="text-align:left">Platform</th><th style="text-align:left">Core CPU %</th><th style="text-align:left">RAM</th></tr></thead><tbody><tr><td style="text-align:left">Windows 11 Pro</td><td style="text-align:left">40% 35% 39% 42%</td><td style="text-align:left">4.64G / 7.7G</td></tr><tr><td style="text-align:left">Headless Ubuntu 22</td><td style="text-align:left">17% 20% 16% 18%</td><td style="text-align:left">3.74G / 15.6G</td></tr></tbody></table>
37
37
  <p>The larger packets and data rate of the LoadSim target caused both platforms to dramatically increase CPU utilization but the Linux machine stays quite performant.</p>
38
38
  <p><code>docker stats</code> was also run to show individual container cpu and memory usage:</p>
@@ -42,15 +42,24 @@
42
42
  <li>redis-ephemeral is now using much more RAM as it is storing the large LoadSim packets</li>
43
43
  <li>Windows is using much more CPU power running the operator, cmd-tlm, and redis</li>
44
44
  </ul>
45
- <h1>Conclusions</h1>
45
+ <h1 id="conclusions">Conclusions</h1>
46
46
  <p>While it is easy to run COSMOS on any Docker platform, increasing the number and complexity of the targets requires choosing the correct hardware. Sizing can be approximated but the best solution is to install representative targets and use <code>docker stats</code> and <code>htop</code> to judge the CPU and memory pressure on the given hardware.</p>
47
- <p><a href="https://openc3.com/enterprise" target="_blank" rel="noopener noreferrer">COSMOS Enterprise Edition</a> on Kubernetes helps to eliminate the hardware sizing issue by scaling the cluster to meet the needs of the system. Check out <a href="https://openc3.com/news/scaling" target="_blank" rel="noopener noreferrer">this recent talk</a> Ryan gave at GSAW showing how we scaled to over 160 satellites on a 4 node kubernetes cluster on EKS.</p>
47
+ <p><a href="https://openc3.com/enterprise">COSMOS Enterprise Edition</a> on Kubernetes helps to eliminate the hardware sizing issue by scaling the cluster to meet the needs of the system. Check out <a href="https://openc3.com/news/scaling">this recent talk</a> Ryan gave at GSAW showing how we scaled to over 160 satellites on a 4 node kubernetes cluster on EKS.</p>
48
48
  <hr>
49
- <section data-footnotes="true" class="footnotes"><h2 class="anchor anchorWithStickyNavbar_fF9Z sr-only" id="footnote-label">Footnotes<a href="#footnote-label" class="hash-link" aria-label="Direct link to Footnotes" title="Direct link to Footnotes">​</a></h2>
49
+ <section data-footnotes="true" class="footnotes"><h2 class="sr-only" id="footnote-label">Footnotes</h2>
50
50
  <ol>
51
51
  <li id="user-content-fn-1">
52
52
  <p>Full specs of the Windows Platform:</p>
53
- <div class="codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-text codeBlock_TAPP thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_AdAo"><span class="token-line" style="color:#d6deeb"><span class="token plain">Windows 11 Pro</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">Docker Desktop 4.22.0</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">WSL version: 1.2.5.0</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">Kernel version: 5.15.90.1</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">WSLg version: 1.0.51</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">MSRDC version: 1.2.3770</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">Direct3D version: 1.608.2-61064218</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">Windows version: 10.0.22621.2134</span><br></span></code></pre><div class="buttonGroup_TNwR"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_MVhB" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_yxgH"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_QJLJ"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
53
+ <pre><code>Windows 11 Pro
54
+ Docker Desktop 4.22.0
55
+ WSL version: 1.2.5.0
56
+ Kernel version: 5.15.90.1
57
+ WSLg version: 1.0.51
58
+ MSRDC version: 1.2.3770
59
+ Direct3D version: 1.608.2-61064218
60
+ DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
61
+ Windows version: 10.0.22621.2134
62
+ </code></pre>
54
63
  <a href="#user-content-fnref-1" data-footnote-backref="" aria-label="Back to reference 1" class="data-footnote-backref">↩</a>
55
64
  </li>
56
65
  </ol>
@@ -3,12 +3,12 @@
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
5
  <meta name="generator" content="Docusaurus v3.1.0">
6
- <title data-rh="true">Raspberry Pi | OpenC3 Docs</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.openc3.com/tools/staticdocs/docs/guides/raspberrypi"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Raspberry Pi | OpenC3 Docs"><meta data-rh="true" name="description" content="COSMOS Running on Raspberry Pi 4"><meta data-rh="true" property="og:description" content="COSMOS Running on Raspberry Pi 4"><link data-rh="true" rel="icon" href="/tools/staticdocs/img/favicon.png"><link data-rh="true" rel="canonical" href="https://docs.openc3.com/tools/staticdocs/docs/guides/raspberrypi"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/raspberrypi" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/raspberrypi" hreflang="x-default"><link rel="stylesheet" href="/tools/staticdocs/assets/css/styles.dd31dbff.css">
7
- <script src="/tools/staticdocs/assets/js/runtime~main.8f84aa81.js" defer="defer"></script>
8
- <script src="/tools/staticdocs/assets/js/main.89007ebb.js" defer="defer"></script>
6
+ <title data-rh="true">Raspberry Pi | OpenC3 Docs</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.openc3.com/tools/staticdocs/docs/guides/raspberrypi"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Raspberry Pi | OpenC3 Docs"><meta data-rh="true" name="description" content="COSMOS Running on Raspberry Pi 4"><meta data-rh="true" property="og:description" content="COSMOS Running on Raspberry Pi 4"><link data-rh="true" rel="icon" href="/tools/staticdocs/img/favicon.png"><link data-rh="true" rel="canonical" href="https://docs.openc3.com/tools/staticdocs/docs/guides/raspberrypi"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/raspberrypi" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/raspberrypi" hreflang="x-default"><link rel="stylesheet" href="/tools/staticdocs/assets/css/styles.a4426211.css">
7
+ <script src="/tools/staticdocs/assets/js/runtime~main.256dc9a2.js" defer="defer"></script>
8
+ <script src="/tools/staticdocs/assets/js/main.a6fe34c0.js" defer="defer"></script>
9
9
  </head>
10
10
  <body class="navigation-with-keyboard">
11
- <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"dark")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_G6ar" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/tools/staticdocs/"><div class="navbar__logo"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--light_DIHH"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--dark_Bv2M"></div><b class="navbar__title text--truncate">OpenC3 Docs</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/tools/staticdocs/docs">Documentation</a><a href="https://openc3.com/enterprise/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Enterprise</a></div><div class="navbar__items navbar__items--right"><div class="navbarSearchContainer_bmvg"><div class="navbar__search"><span aria-label="expand searchbar" role="button" class="search-icon" tabindex="0"></span><input id="search_input_react" type="search" placeholder="Loading..." aria-label="Search" class="navbar__search-input search-bar" disabled=""></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_UyTV"><div class="docsWrapper_XLvK"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_z1FD" type="button"></button><div class="docRoot_HciC"><aside class="theme-doc-sidebar-container docSidebarContainer_e5ai"><div class="sidebarViewport_N8x0"><div class="sidebar_vJCc"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_qiME"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/tools/staticdocs/docs">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/getting-started">Getting Started</a><button aria-label="Expand sidebar category &#x27;Getting Started&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/configuration">Configuration</a><button aria-label="Expand sidebar category &#x27;Configuration&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/tools">Tools</a><button aria-label="Expand sidebar category &#x27;Tools&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/tools/staticdocs/docs/guides">Guides</a><button aria-label="Collapse sidebar category &#x27;Guides&#x27;" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/bridges">Bridges</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/cfs">COSMOS and NASA cFS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/custom-widgets">Custom Widgets</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/little-endian-bitfields">Little Endian Bitfields</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/local-mode">Local Mode</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/logging">Logging</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/monitoring">Monitoring</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/performance">Performance</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/tools/staticdocs/docs/guides/raspberrypi">Raspberry Pi</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/script-writing">Script Writing Guide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/scripting-api">Scripting API Guide</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/development">Development</a><button aria-label="Expand sidebar category &#x27;Development&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/meta">Meta</a><button aria-label="Expand sidebar category &#x27;Meta&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/tools/staticdocs/docs/privacy">OpenC3, Inc. Privacy Policy</a></li></ul></nav></div></div></aside><main class="docMainContainer_namt"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_YAwJ"><div class="docItemContainer_Rv5Z"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_zCmv" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/tools/staticdocs/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_JFrk"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/tools/staticdocs/docs/guides"><span itemprop="name">Guides</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Raspberry Pi</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_O_Qc theme-doc-toc-mobile tocMobile_tjDr"><button type="button" class="clean-btn tocCollapsibleButton_htYj">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Raspberry Pi</h1></header><h3 class="anchor anchorWithStickyNavbar_fF9Z" id="cosmos-running-on-raspberry-pi-4">COSMOS Running on Raspberry Pi 4<a href="#cosmos-running-on-raspberry-pi-4" class="hash-link" aria-label="Direct link to COSMOS Running on Raspberry Pi 4" title="Direct link to COSMOS Running on Raspberry Pi 4">​</a></h3>
11
+ <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"dark")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_G6ar" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/tools/staticdocs/"><div class="navbar__logo"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--light_DIHH"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--dark_Bv2M"></div><b class="navbar__title text--truncate">OpenC3 Docs</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/tools/staticdocs/docs">Documentation</a><a href="https://openc3.com/enterprise/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Enterprise</a></div><div class="navbar__items navbar__items--right"><div class="navbarSearchContainer_bmvg"><div class="navbar__search"><span aria-label="expand searchbar" role="button" class="search-icon" tabindex="0"></span><input id="search_input_react" type="search" placeholder="Loading..." aria-label="Search" class="navbar__search-input search-bar" disabled=""></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_UyTV"><div class="docsWrapper_XLvK"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_z1FD" type="button"></button><div class="docRoot_HciC"><aside class="theme-doc-sidebar-container docSidebarContainer_e5ai"><div class="sidebarViewport_N8x0"><div class="sidebar_vJCc"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_qiME"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/tools/staticdocs/docs">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/getting-started">Getting Started</a><button aria-label="Expand sidebar category &#x27;Getting Started&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/configuration">Configuration</a><button aria-label="Expand sidebar category &#x27;Configuration&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/tools">Tools</a><button aria-label="Expand sidebar category &#x27;Tools&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/tools/staticdocs/docs/guides">Guides</a><button aria-label="Collapse sidebar category &#x27;Guides&#x27;" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/bridges">Bridges</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/cfs">COSMOS and NASA cFS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/custom-widgets">Custom Widgets</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/little-endian-bitfields">Little Endian Bitfields</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/local-mode">Local Mode</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/logging">Logging</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/monitoring">Monitoring</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/performance">Performance</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/tools/staticdocs/docs/guides/raspberrypi">Raspberry Pi</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/script-writing">Script Writing Guide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/scripting-api">Scripting API Guide</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/development">Development</a><button aria-label="Expand sidebar category &#x27;Development&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/meta">Meta</a><button aria-label="Expand sidebar category &#x27;Meta&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/tools/staticdocs/docs/privacy">OpenC3, Inc. Privacy Policy</a></li></ul></nav></div></div></aside><main class="docMainContainer_namt"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_YAwJ"><div class="docItemContainer_Rv5Z"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_zCmv" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/tools/staticdocs/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_JFrk"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/tools/staticdocs/docs/guides"><span itemprop="name">Guides</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Raspberry Pi</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_O_Qc theme-doc-toc-mobile tocMobile_tjDr"><button type="button" class="clean-btn tocCollapsibleButton_htYj">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Raspberry Pi</h1></header><h3 id="cosmos-running-on-raspberry-pi-4">COSMOS Running on Raspberry Pi 4</h3>
12
12
  <p>The Raspberry Pi 4 is a low-cost powerful ARM-based minicomputer that runs linux. And because it runs modern linux, it can also run COSMOS! These directions will get you up and running.</p>
13
13
  <p>What you&#x27;ll need:</p>
14
14
  <ul>
@@ -22,7 +22,7 @@
22
22
  <ol>
23
23
  <li>
24
24
  <p>Setup 64-bit Raspian OS Lite on the SD Card</p>
25
- <p>Make sure you have the Raspberry Pi Imager app from: <a href="https://www.raspberrypi.com/software/" target="_blank" rel="noopener noreferrer">https://www.raspberrypi.com/software/</a></p>
25
+ <p>Make sure you have the Raspberry Pi Imager app from: <a href="https://www.raspberrypi.com/software/">https://www.raspberrypi.com/software/</a></p>
26
26
  <ol>
27
27
  <li>Insert the SD Card into your computer (Note this process will erase all data on the SD card!)</li>
28
28
  <li>Open the Raspberry Pi Imager App</li>
@@ -58,7 +58,7 @@
58
58
  <li>
59
59
  <p>Open a terminal window and use ssh to connect to your Pi</p>
60
60
  <ol>
61
- <li>On Mac / Linux: ssh <a href="mailto:pi@cosmos.local" target="_blank" rel="noopener noreferrer">pi@cosmos.local</a></li>
61
+ <li>On Mac / Linux: ssh <a href="mailto:pi@cosmos.local">pi@cosmos.local</a></li>
62
62
  <li>On Windows, use Putty to connect. You will probably have to install Bonjour for Windows for .local addresses to work as well.</li>
63
63
  </ol>
64
64
  </li>
@@ -68,10 +68,25 @@
68
68
  <p>From SSH, Enter the following commands</p>
69
69
  </li>
70
70
  </ol>
71
- <div class="language-bash codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-bash codeBlock_TAPP thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_AdAo"><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">sudo</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">sysctl</span><span class="token plain"> </span><span class="token parameter variable" style="color:rgb(214, 222, 235)">-w</span><span class="token plain"> </span><span class="token assign-left variable" style="color:rgb(214, 222, 235)">vm.max_map_count</span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token number" style="color:rgb(247, 140, 108)">262144</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">sudo</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">sysctl</span><span class="token plain"> </span><span class="token parameter variable" style="color:rgb(214, 222, 235)">-w</span><span class="token plain"> </span><span class="token assign-left variable" style="color:rgb(214, 222, 235)">vm.overcommit_memory</span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token number" style="color:rgb(247, 140, 108)">1</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">sudo</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">apt</span><span class="token plain"> update</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">sudo</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">apt</span><span class="token plain"> upgrade</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">sudo</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">apt</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">install</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">git</span><span class="token plain"> </span><span class="token parameter variable" style="color:rgb(214, 222, 235)">-y</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> </span><span class="token parameter variable" style="color:rgb(214, 222, 235)">-fsSL</span><span class="token plain"> https://get.docker.com </span><span class="token parameter variable" style="color:rgb(214, 222, 235)">-o</span><span class="token plain"> get-docker.sh</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">sudo</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">sh</span><span class="token plain"> get-docker.sh</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">sudo</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">usermod</span><span class="token plain"> </span><span class="token parameter variable" style="color:rgb(214, 222, 235)">-aG</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">docker</span><span class="token plain"> </span><span class="token environment constant" style="color:rgb(130, 170, 255)">$USER</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> newgrp </span><span class="token function" style="color:rgb(130, 170, 255)">docker</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">sudo</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">apt-get</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">install</span><span class="token plain"> libffi-dev libssl-dev python3-dev python3 python3-pip </span><span class="token parameter variable" style="color:rgb(214, 222, 235)">-y</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">sudo</span><span class="token plain"> pip3 </span><span class="token function" style="color:rgb(130, 170, 255)">install</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">docker-compose</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">git</span><span class="token plain"> clone https://github.com/OpenC3/cosmos-project.git cosmos</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token builtin class-name" style="color:rgb(255, 203, 139)">cd</span><span class="token plain"> cosmos</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Edit compose.yaml and remove 127.0.0.1 from the ports section of the openc3-traefik service</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> ./openc3.sh run</span><br></span></code></pre><div class="buttonGroup_TNwR"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_MVhB" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_yxgH"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_QJLJ"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
71
+ <pre><code class="language-bash"> sudo sysctl -w vm.max_map_count=262144
72
+ sudo sysctl -w vm.overcommit_memory=1
73
+ sudo apt update
74
+ sudo apt upgrade
75
+ sudo apt install git -y
76
+ curl -fsSL https://get.docker.com -o get-docker.sh
77
+ sudo sh get-docker.sh
78
+ sudo usermod -aG docker $USER
79
+ newgrp docker
80
+ sudo apt-get install libffi-dev libssl-dev python3-dev python3 python3-pip -y
81
+ sudo pip3 install docker-compose
82
+ git clone https://github.com/OpenC3/cosmos-project.git cosmos
83
+ cd cosmos
84
+ # Edit compose.yaml and remove 127.0.0.1 from the ports section of the openc3-traefik service
85
+ ./openc3.sh run
86
+ </code></pre>
72
87
  <ol>
73
88
  <li>
74
- <p>After about 2 minutes, open a web browswer on your computer, and goto: <a href="http://cosmos.local:2900" target="_blank" rel="noopener noreferrer">http://cosmos.local:2900</a></p>
89
+ <p>After about 2 minutes, open a web browswer on your computer, and goto: <a href="http://cosmos.local:2900">http://cosmos.local:2900</a></p>
75
90
  </li>
76
91
  <li>
77
92
  <p>Congratulations! You now have COSMOS running on a Raspberry Pi!</p>