blockmine 1.21.0 → 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (433) hide show
  1. package/.claude/agents/README.md +469 -0
  2. package/.claude/agents/auth-route-debugger.md +118 -0
  3. package/.claude/agents/auth-route-tester.md +93 -0
  4. package/.claude/agents/auto-error-resolver.md +97 -0
  5. package/.claude/agents/build-optimizer.md +236 -0
  6. package/.claude/agents/code-architecture-reviewer.md +83 -0
  7. package/.claude/agents/code-refactor-master.md +94 -0
  8. package/.claude/agents/cost-optimizer.md +134 -0
  9. package/.claude/agents/deployment-orchestrator.md +113 -0
  10. package/.claude/agents/documentation-architect.md +82 -0
  11. package/.claude/agents/frontend-error-fixer.md +77 -0
  12. package/.claude/agents/iac-code-generator.md +71 -0
  13. package/.claude/agents/incident-responder.md +346 -0
  14. package/.claude/agents/infrastructure-architect.md +31 -0
  15. package/.claude/agents/kubernetes-specialist.md +56 -0
  16. package/.claude/agents/migration-planner.md +181 -0
  17. package/.claude/agents/network-architect.md +196 -0
  18. package/.claude/agents/plan-reviewer.md +52 -0
  19. package/.claude/agents/refactor-planner.md +63 -0
  20. package/.claude/agents/security-scanner.md +102 -0
  21. package/.claude/agents/web-research-specialist.md +78 -0
  22. package/.claude/commands/cost-analysis.md +315 -0
  23. package/.claude/commands/dev-docs-update.md +55 -0
  24. package/.claude/commands/dev-docs.md +51 -0
  25. package/.claude/commands/incident-debug.md +247 -0
  26. package/.claude/commands/infra-plan.md +81 -0
  27. package/.claude/commands/migration-plan.md +478 -0
  28. package/.claude/commands/route-research-for-testing.md +37 -0
  29. package/.claude/commands/security-review.md +66 -0
  30. package/.claude/hooks/CONFIG.md +448 -0
  31. package/.claude/hooks/README.md +163 -0
  32. package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +226 -0
  33. package/.claude/hooks/WINDOWS_HOOKS_README.md +151 -0
  34. package/.claude/hooks/add-skill-activation-banners.ts +132 -0
  35. package/.claude/hooks/comprehensive-skill-test.ts +1315 -0
  36. package/.claude/hooks/error-handling-reminder.sh +12 -0
  37. package/.claude/hooks/error-handling-reminder.ts +222 -0
  38. package/.claude/hooks/k8s-manifest-validator.sh +56 -0
  39. package/.claude/hooks/package-lock.json +556 -0
  40. package/.claude/hooks/package.json +16 -0
  41. package/.claude/hooks/post-tool-use-tracker.ps1 +174 -0
  42. package/.claude/hooks/post-tool-use-tracker.sh +183 -0
  43. package/.claude/hooks/security-policy-check.sh +247 -0
  44. package/.claude/hooks/skill-activation-prompt.ps1 +10 -0
  45. package/.claude/hooks/skill-activation-prompt.sh +10 -0
  46. package/.claude/hooks/skill-activation-prompt.ts +141 -0
  47. package/.claude/hooks/stop-build-check-enhanced.sh +130 -0
  48. package/.claude/hooks/terraform-validator.sh +53 -0
  49. package/.claude/hooks/test-input.json +7 -0
  50. package/.claude/hooks/test-skill-activation.ts +427 -0
  51. package/.claude/hooks/trigger-build-resolver.sh +79 -0
  52. package/.claude/hooks/tsc-check.sh +173 -0
  53. package/.claude/hooks/tsconfig.json +19 -0
  54. package/.claude/settings.json +55 -0
  55. package/.claude/settings.local.json +27 -14
  56. package/.claude/skills/README.md +507 -0
  57. package/.claude/skills/api-engineering/SKILL.md +63 -0
  58. package/.claude/skills/api-engineering/resources/api-versioning.md +88 -0
  59. package/.claude/skills/api-engineering/resources/graphql-patterns.md +106 -0
  60. package/.claude/skills/api-engineering/resources/rate-limiting.md +118 -0
  61. package/.claude/skills/api-engineering/resources/rest-api-design.md +105 -0
  62. package/.claude/skills/backend-dev-guidelines/SKILL.md +306 -0
  63. package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +451 -0
  64. package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +307 -0
  65. package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +638 -0
  66. package/.claude/skills/backend-dev-guidelines/resources/configuration.md +275 -0
  67. package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +224 -0
  68. package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +213 -0
  69. package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +756 -0
  70. package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +336 -0
  71. package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +789 -0
  72. package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +235 -0
  73. package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +754 -0
  74. package/.claude/skills/budget-and-cost-management/SKILL.md +850 -0
  75. package/.claude/skills/build-engineering/SKILL.md +431 -0
  76. package/.claude/skills/build-engineering/resources/artifact-repositories.md +72 -0
  77. package/.claude/skills/build-engineering/resources/build-caching.md +96 -0
  78. package/.claude/skills/build-engineering/resources/build-pipelines.md +105 -0
  79. package/.claude/skills/build-engineering/resources/build-security.md +95 -0
  80. package/.claude/skills/build-engineering/resources/build-systems.md +389 -0
  81. package/.claude/skills/build-engineering/resources/compilation-optimization.md +201 -0
  82. package/.claude/skills/build-engineering/resources/dependency-management.md +73 -0
  83. package/.claude/skills/build-engineering/resources/monorepo-builds.md +110 -0
  84. package/.claude/skills/build-engineering/resources/performance-optimization.md +113 -0
  85. package/.claude/skills/build-engineering/resources/reproducible-builds.md +82 -0
  86. package/.claude/skills/cloud-engineering/SKILL.md +675 -0
  87. package/.claude/skills/cloud-engineering/resources/aws-patterns.md +742 -0
  88. package/.claude/skills/cloud-engineering/resources/azure-patterns.md +714 -0
  89. package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +987 -0
  90. package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +757 -0
  91. package/.claude/skills/cloud-engineering/resources/cloud-networking.md +1058 -0
  92. package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +1530 -0
  93. package/.claude/skills/cloud-engineering/resources/cloud-security.md +990 -0
  94. package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +758 -0
  95. package/.claude/skills/cloud-engineering/resources/migration-strategies.md +820 -0
  96. package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +670 -0
  97. package/.claude/skills/cloud-engineering/resources/oci-patterns.md +1198 -0
  98. package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +795 -0
  99. package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +966 -0
  100. package/.claude/skills/cybersecurity/SKILL.md +409 -0
  101. package/.claude/skills/cybersecurity/resources/security-architecture.md +266 -0
  102. package/.claude/skills/database-engineering/SKILL.md +61 -0
  103. package/.claude/skills/database-engineering/resources/backup-and-recovery.md +72 -0
  104. package/.claude/skills/database-engineering/resources/database-replication.md +63 -0
  105. package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +70 -0
  106. package/.claude/skills/database-engineering/resources/query-optimization.md +68 -0
  107. package/.claude/skills/devsecops/SKILL.md +374 -0
  108. package/.claude/skills/devsecops/resources/ci-cd-security.md +204 -0
  109. package/.claude/skills/devsecops/resources/compliance-automation.md +530 -0
  110. package/.claude/skills/devsecops/resources/compliance-frameworks.md +2322 -0
  111. package/.claude/skills/devsecops/resources/container-security.md +915 -0
  112. package/.claude/skills/devsecops/resources/cspm-integration.md +1440 -0
  113. package/.claude/skills/devsecops/resources/policy-enforcement.md +619 -0
  114. package/.claude/skills/devsecops/resources/secrets-management.md +755 -0
  115. package/.claude/skills/devsecops/resources/security-monitoring.md +146 -0
  116. package/.claude/skills/devsecops/resources/security-scanning.md +887 -0
  117. package/.claude/skills/devsecops/resources/security-testing.md +203 -0
  118. package/.claude/skills/devsecops/resources/supply-chain-security.md +518 -0
  119. package/.claude/skills/devsecops/resources/vulnerability-management.md +481 -0
  120. package/.claude/skills/devsecops/resources/zero-trust-architecture.md +177 -0
  121. package/.claude/skills/documentation-as-code/SKILL.md +323 -0
  122. package/.claude/skills/documentation-as-code/resources/api-documentation.md +90 -0
  123. package/.claude/skills/documentation-as-code/resources/changelog-management.md +79 -0
  124. package/.claude/skills/documentation-as-code/resources/diagram-generation.md +44 -0
  125. package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +99 -0
  126. package/.claude/skills/documentation-as-code/resources/documentation-automation.md +68 -0
  127. package/.claude/skills/documentation-as-code/resources/documentation-sites.md +79 -0
  128. package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +162 -0
  129. package/.claude/skills/documentation-as-code/resources/openapi-specification.md +77 -0
  130. package/.claude/skills/documentation-as-code/resources/readme-engineering.md +60 -0
  131. package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +202 -0
  132. package/.claude/skills/engineering-management/SKILL.md +356 -0
  133. package/.claude/skills/engineering-management/resources/career-ladders.md +609 -0
  134. package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +555 -0
  135. package/.claude/skills/engineering-management/resources/one-on-one-guides.md +609 -0
  136. package/.claude/skills/engineering-management/resources/resource-planning.md +557 -0
  137. package/.claude/skills/engineering-management/resources/team-organization-patterns.md +491 -0
  138. package/.claude/skills/engineering-management/resources/technical-interviews.md +474 -0
  139. package/.claude/skills/engineering-operations-management/SKILL.md +817 -0
  140. package/.claude/skills/error-tracking/SKILL.md +379 -0
  141. package/.claude/skills/frontend-dev-guidelines/SKILL.md +403 -0
  142. package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +331 -0
  143. package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +872 -0
  144. package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +502 -0
  145. package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +767 -0
  146. package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +502 -0
  147. package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +501 -0
  148. package/.claude/skills/frontend-dev-guidelines/resources/performance.md +406 -0
  149. package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +364 -0
  150. package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +428 -0
  151. package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +418 -0
  152. package/.claude/skills/general-it-engineering/SKILL.md +393 -0
  153. package/.claude/skills/general-it-engineering/resources/asset-management.md +712 -0
  154. package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +817 -0
  155. package/.claude/skills/general-it-engineering/resources/business-continuity.md +786 -0
  156. package/.claude/skills/general-it-engineering/resources/change-management.md +715 -0
  157. package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +729 -0
  158. package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +738 -0
  159. package/.claude/skills/general-it-engineering/resources/incident-service-management.md +834 -0
  160. package/.claude/skills/general-it-engineering/resources/it-governance.md +753 -0
  161. package/.claude/skills/general-it-engineering/resources/itil-framework.md +503 -0
  162. package/.claude/skills/general-it-engineering/resources/service-management.md +669 -0
  163. package/.claude/skills/infrastructure-architecture/SKILL.md +328 -0
  164. package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +505 -0
  165. package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +528 -0
  166. package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +453 -0
  167. package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +773 -0
  168. package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +499 -0
  169. package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +501 -0
  170. package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +535 -0
  171. package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +512 -0
  172. package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +608 -0
  173. package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +562 -0
  174. package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +538 -0
  175. package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +489 -0
  176. package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +1000 -0
  177. package/.claude/skills/infrastructure-strategy/SKILL.md +924 -0
  178. package/.claude/skills/network-engineering/SKILL.md +385 -0
  179. package/.claude/skills/network-engineering/resources/dns-management.md +738 -0
  180. package/.claude/skills/network-engineering/resources/load-balancing.md +820 -0
  181. package/.claude/skills/network-engineering/resources/network-architecture.md +546 -0
  182. package/.claude/skills/network-engineering/resources/network-security.md +921 -0
  183. package/.claude/skills/network-engineering/resources/network-troubleshooting.md +749 -0
  184. package/.claude/skills/network-engineering/resources/routing-switching.md +373 -0
  185. package/.claude/skills/network-engineering/resources/sdn-networking.md +695 -0
  186. package/.claude/skills/network-engineering/resources/service-mesh-networking.md +777 -0
  187. package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +444 -0
  188. package/.claude/skills/network-engineering/resources/vpn-connectivity.md +672 -0
  189. package/.claude/skills/observability-engineering/SKILL.md +101 -0
  190. package/.claude/skills/observability-engineering/resources/apm-tools.md +97 -0
  191. package/.claude/skills/observability-engineering/resources/correlation-strategies.md +87 -0
  192. package/.claude/skills/observability-engineering/resources/distributed-tracing.md +98 -0
  193. package/.claude/skills/observability-engineering/resources/logs-aggregation.md +118 -0
  194. package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +141 -0
  195. package/.claude/skills/observability-engineering/resources/opentelemetry.md +110 -0
  196. package/.claude/skills/platform-engineering/SKILL.md +555 -0
  197. package/.claude/skills/platform-engineering/resources/architecture-overview.md +600 -0
  198. package/.claude/skills/platform-engineering/resources/container-orchestration.md +916 -0
  199. package/.claude/skills/platform-engineering/resources/cost-optimization.md +634 -0
  200. package/.claude/skills/platform-engineering/resources/developer-platforms.md +670 -0
  201. package/.claude/skills/platform-engineering/resources/gitops-automation.md +650 -0
  202. package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +778 -0
  203. package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +708 -0
  204. package/.claude/skills/platform-engineering/resources/multi-tenancy.md +602 -0
  205. package/.claude/skills/platform-engineering/resources/platform-security.md +711 -0
  206. package/.claude/skills/platform-engineering/resources/resource-management.md +592 -0
  207. package/.claude/skills/platform-engineering/resources/service-mesh.md +628 -0
  208. package/.claude/skills/release-engineering/SKILL.md +393 -0
  209. package/.claude/skills/release-engineering/resources/artifact-management.md +108 -0
  210. package/.claude/skills/release-engineering/resources/build-optimization.md +84 -0
  211. package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +411 -0
  212. package/.claude/skills/release-engineering/resources/deployment-strategies.md +197 -0
  213. package/.claude/skills/release-engineering/resources/pipeline-security.md +62 -0
  214. package/.claude/skills/release-engineering/resources/progressive-delivery.md +83 -0
  215. package/.claude/skills/release-engineering/resources/release-automation.md +68 -0
  216. package/.claude/skills/release-engineering/resources/release-orchestration.md +77 -0
  217. package/.claude/skills/release-engineering/resources/rollback-strategies.md +66 -0
  218. package/.claude/skills/release-engineering/resources/versioning-strategies.md +59 -0
  219. package/.claude/skills/route-tester/SKILL.md +392 -0
  220. package/.claude/skills/skill-developer/ADVANCED.md +197 -0
  221. package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +306 -0
  222. package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +152 -0
  223. package/.claude/skills/skill-developer/SKILL.md +430 -0
  224. package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +315 -0
  225. package/.claude/skills/skill-developer/TRIGGER_TYPES.md +305 -0
  226. package/.claude/skills/skill-developer/TROUBLESHOOTING.md +514 -0
  227. package/.claude/skills/skill-rules.json +2940 -0
  228. package/.claude/skills/sre/SKILL.md +464 -0
  229. package/.claude/skills/sre/resources/alerting-best-practices.md +282 -0
  230. package/.claude/skills/sre/resources/capacity-planning.md +226 -0
  231. package/.claude/skills/sre/resources/chaos-engineering.md +193 -0
  232. package/.claude/skills/sre/resources/disaster-recovery.md +232 -0
  233. package/.claude/skills/sre/resources/incident-management.md +436 -0
  234. package/.claude/skills/sre/resources/observability-stack.md +240 -0
  235. package/.claude/skills/sre/resources/on-call-runbooks.md +167 -0
  236. package/.claude/skills/sre/resources/performance-optimization.md +108 -0
  237. package/.claude/skills/sre/resources/reliability-patterns.md +183 -0
  238. package/.claude/skills/sre/resources/slo-sli-sla.md +464 -0
  239. package/.claude/skills/sre/resources/toil-reduction.md +145 -0
  240. package/.claude/skills/systems-engineering/SKILL.md +648 -0
  241. package/.claude/skills/systems-engineering/resources/automation-patterns.md +771 -0
  242. package/.claude/skills/systems-engineering/resources/configuration-management.md +998 -0
  243. package/.claude/skills/systems-engineering/resources/linux-administration.md +672 -0
  244. package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +982 -0
  245. package/.claude/skills/systems-engineering/resources/performance-tuning.md +871 -0
  246. package/.claude/skills/systems-engineering/resources/powershell-scripting.md +482 -0
  247. package/.claude/skills/systems-engineering/resources/security-hardening.md +739 -0
  248. package/.claude/skills/systems-engineering/resources/shell-scripting.md +915 -0
  249. package/.claude/skills/systems-engineering/resources/storage-management.md +628 -0
  250. package/.claude/skills/systems-engineering/resources/system-monitoring.md +787 -0
  251. package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +753 -0
  252. package/.claude/skills/systems-engineering/resources/windows-administration.md +738 -0
  253. package/.claude/skills/technical-leadership/SKILL.md +728 -0
  254. package/CHANGELOG.md +90 -54
  255. package/README.md +94 -0
  256. package/backend/docs/SECRETS_DOCUMENTATION.md +327 -0
  257. package/backend/jest.config.js +59 -0
  258. package/backend/package-lock.json +6129 -0
  259. package/backend/package.json +16 -4
  260. package/backend/prisma/migrations/20251026104609_add_websocket_api/migration.sql +33 -0
  261. package/backend/prisma/schema.prisma +33 -0
  262. package/backend/src/__tests__/core/DependencyService.test.js +336 -0
  263. package/backend/src/__tests__/core/UserService.test.js +875 -0
  264. package/backend/src/__tests__/repositories/BaseRepository.test.js +146 -0
  265. package/backend/src/__tests__/repositories/BotRepository.test.js +118 -0
  266. package/backend/src/__tests__/repositories/CommandRepository.test.js +132 -0
  267. package/backend/src/__tests__/repositories/EventGraphRepository.test.js +93 -0
  268. package/backend/src/__tests__/repositories/GroupRepository.test.js +155 -0
  269. package/backend/src/__tests__/repositories/PermissionRepository.test.js +130 -0
  270. package/backend/src/__tests__/repositories/PluginRepository.test.js +107 -0
  271. package/backend/src/__tests__/repositories/ServerRepository.test.js +80 -0
  272. package/backend/src/__tests__/repositories/UserRepository.test.js +128 -0
  273. package/backend/src/__tests__/secretsFilter.test.js +425 -0
  274. package/backend/src/__tests__/services/BotLifecycleService.test.js +411 -0
  275. package/backend/src/__tests__/services/BotProcessManager.test.js +285 -0
  276. package/backend/src/__tests__/services/CacheManager.test.js +125 -0
  277. package/backend/src/__tests__/services/CommandExecutionService.test.js +460 -0
  278. package/backend/src/__tests__/services/ResourceMonitorService.test.js +207 -0
  279. package/backend/src/__tests__/services/TelemetryService.test.js +291 -0
  280. package/backend/src/__tests__/setup.js +25 -0
  281. package/backend/src/api/routes/apiKeys.js +181 -0
  282. package/backend/src/api/routes/bots.js +49 -7
  283. package/backend/src/api/routes/plugins.js +2 -1
  284. package/backend/src/api/routes/system.js +174 -0
  285. package/backend/src/container.js +82 -0
  286. package/backend/src/core/BotManager.js +142 -871
  287. package/backend/src/core/BotManager.old.js +1093 -0
  288. package/backend/src/core/BotProcess.js +1092 -858
  289. package/backend/src/core/EventGraphManager.js +280 -198
  290. package/backend/src/core/GraphExecutionEngine.js +321 -325
  291. package/backend/src/core/MessageQueue.js +27 -6
  292. package/backend/src/core/NodeRegistry.js +37 -1134
  293. package/backend/src/core/PluginManager.js +62 -12
  294. package/backend/src/core/PrismaService.js +32 -0
  295. package/backend/src/core/UserService.js +3 -3
  296. package/backend/src/core/__tests__/PrismaService.test.js +24 -0
  297. package/backend/src/core/commands/README.md +305 -0
  298. package/backend/src/core/commands/dev.js +13 -7
  299. package/backend/src/core/commands/ping.js +10 -4
  300. package/backend/src/core/commands/whois.js +63 -0
  301. package/backend/src/core/config/validation.js +27 -0
  302. package/backend/src/core/constants/graphTypes.js +21 -0
  303. package/backend/src/core/node-registries/actions.js +132 -0
  304. package/backend/src/core/node-registries/arrays.js +137 -0
  305. package/backend/src/core/node-registries/bot.js +23 -0
  306. package/backend/src/core/node-registries/data.js +290 -0
  307. package/backend/src/core/node-registries/debug.js +26 -0
  308. package/backend/src/core/node-registries/events.js +187 -0
  309. package/backend/src/core/node-registries/flow.js +139 -0
  310. package/backend/src/core/node-registries/logic.js +45 -0
  311. package/backend/src/core/node-registries/math.js +42 -0
  312. package/backend/src/core/node-registries/objects.js +98 -0
  313. package/backend/src/core/node-registries/strings.js +153 -0
  314. package/backend/src/core/node-registries/time.js +113 -0
  315. package/backend/src/core/node-registries/users.js +79 -0
  316. package/backend/src/core/nodes/{action_bot_look_at.js → actions/bot_look_at.js} +36 -36
  317. package/backend/src/core/nodes/{action_bot_set_variable.js → actions/bot_set_variable.js} +32 -32
  318. package/backend/src/core/nodes/{action_send_log.js → actions/send_log.js} +28 -23
  319. package/backend/src/core/nodes/{action_send_message.js → actions/send_message.js} +32 -32
  320. package/backend/src/core/nodes/actions/send_websocket_response.js +33 -0
  321. package/backend/src/core/nodes/arrays/get_next.js +35 -0
  322. package/backend/src/core/nodes/{data_cast.js → data/cast.js} +8 -0
  323. package/backend/src/core/nodes/data/datetime_literal.js +27 -0
  324. package/backend/src/core/nodes/data/entity_info.js +69 -0
  325. package/backend/src/core/nodes/data/get_nearby_entities.js +32 -0
  326. package/backend/src/core/nodes/data/get_nearby_players.js +64 -0
  327. package/backend/src/core/nodes/{data_get_user_field.js → data/get_user_field.js} +1 -1
  328. package/backend/src/core/nodes/data/type_check.js +53 -0
  329. package/backend/src/core/nodes/{debug_log.js → debug/log.js} +16 -16
  330. package/backend/src/core/nodes/{flow_branch.js → flow/branch.js} +15 -15
  331. package/backend/src/core/nodes/{flow_break.js → flow/break.js} +14 -14
  332. package/backend/src/core/nodes/flow/delay.js +43 -0
  333. package/backend/src/core/nodes/{flow_for_each.js → flow/for_each.js} +39 -39
  334. package/backend/src/core/nodes/{flow_sequence.js → flow/sequence.js} +16 -16
  335. package/backend/src/core/nodes/{flow_switch.js → flow/switch.js} +47 -47
  336. package/backend/src/core/nodes/{flow_while.js → flow/while.js} +1 -1
  337. package/backend/src/core/nodes/logic/__tests__/compare.test.js +83 -0
  338. package/backend/src/core/nodes/math/__tests__/operation.test.js +65 -0
  339. package/backend/src/core/nodes/strings/__tests__/concat.test.js +89 -0
  340. package/backend/src/core/nodes/time/__tests__/now.test.js +24 -0
  341. package/backend/src/core/nodes/time/add.js +33 -0
  342. package/backend/src/core/nodes/time/compare.js +35 -0
  343. package/backend/src/core/nodes/time/diff.js +29 -0
  344. package/backend/src/core/nodes/time/format.js +32 -0
  345. package/backend/src/core/nodes/time/now.js +18 -0
  346. package/backend/src/core/nodes/{user_check_blacklist.js → users/check_blacklist.js} +37 -37
  347. package/backend/src/core/nodes/{user_get_groups.js → users/get_groups.js} +36 -36
  348. package/backend/src/core/nodes/{user_get_permissions.js → users/get_permissions.js} +36 -36
  349. package/backend/src/core/nodes/{user_set_blacklist.js → users/set_blacklist.js} +37 -37
  350. package/backend/src/core/services/BotLifecycleService.js +596 -0
  351. package/backend/src/core/services/BotProcessManager.js +163 -0
  352. package/backend/src/core/services/CacheManager.js +111 -0
  353. package/backend/src/core/services/CommandExecutionService.js +351 -0
  354. package/backend/src/core/services/ResourceMonitorService.js +90 -0
  355. package/backend/src/core/services/TelemetryService.js +124 -0
  356. package/backend/src/core/services/ValidationService.js +132 -0
  357. package/backend/src/core/services/__tests__/ValidationService.test.js +148 -0
  358. package/backend/src/core/services.js +20 -5
  359. package/backend/src/core/system/CommandContext.js +84 -0
  360. package/backend/src/core/system/Transport.js +78 -0
  361. package/backend/src/core/utils/__tests__/jsonParser.test.js +44 -0
  362. package/backend/src/core/utils/jsonParser.js +18 -0
  363. package/backend/src/core/utils/secretsFilter.js +262 -0
  364. package/backend/src/core/utils/variableParser.js +89 -0
  365. package/backend/src/core/validation/__tests__/nodeSchemas.test.js +175 -0
  366. package/backend/src/core/validation/nodeSchemas.js +112 -0
  367. package/backend/src/lib/prisma.js +2 -4
  368. package/backend/src/real-time/botApi/handlers/commandHandlers.js +28 -0
  369. package/backend/src/real-time/botApi/handlers/graphHandlers.js +99 -0
  370. package/backend/src/real-time/botApi/handlers/graphWebSocketHandlers.js +147 -0
  371. package/backend/src/real-time/botApi/handlers/index.js +43 -0
  372. package/backend/src/real-time/botApi/handlers/messageHandlers.js +66 -0
  373. package/backend/src/real-time/botApi/handlers/statusHandlers.js +17 -0
  374. package/backend/src/real-time/botApi/handlers/userHandlers.js +141 -0
  375. package/backend/src/real-time/botApi/index.js +40 -0
  376. package/backend/src/real-time/botApi/middleware.js +79 -0
  377. package/backend/src/real-time/botApi/utils.js +54 -0
  378. package/backend/src/real-time/socketHandler.js +6 -2
  379. package/backend/src/repositories/BaseRepository.js +43 -0
  380. package/backend/src/repositories/BotRepository.js +42 -0
  381. package/backend/src/repositories/CommandRepository.js +53 -0
  382. package/backend/src/repositories/EventGraphRepository.js +40 -0
  383. package/backend/src/repositories/GroupRepository.js +69 -0
  384. package/backend/src/repositories/PermissionRepository.js +48 -0
  385. package/backend/src/repositories/PluginRepository.js +42 -0
  386. package/backend/src/repositories/ServerRepository.js +27 -0
  387. package/backend/src/repositories/UserRepository.js +48 -0
  388. package/backend/src/server.js +3 -0
  389. package/backend/src/test-refactor.js +85 -0
  390. package/frontend/dist/assets/index-CfTo92bP.css +1 -0
  391. package/frontend/dist/assets/index-CiFD5X9Z.js +8344 -0
  392. package/frontend/dist/index.html +2 -2
  393. package/frontend/package.json +0 -5
  394. package/package.json +2 -1
  395. package/frontend/dist/assets/index-B9GedHEa.js +0 -8352
  396. package/frontend/dist/assets/index-zLiy9MDx.css +0 -1
  397. package/nul +0 -0
  398. /package/backend/src/core/nodes/{action_http_request.js → actions/http_request.js} +0 -0
  399. /package/backend/src/core/nodes/{array_add_element.js → arrays/add_element.js} +0 -0
  400. /package/backend/src/core/nodes/{array_contains.js → arrays/contains.js} +0 -0
  401. /package/backend/src/core/nodes/{array_find_index.js → arrays/find_index.js} +0 -0
  402. /package/backend/src/core/nodes/{array_get_by_index.js → arrays/get_by_index.js} +0 -0
  403. /package/backend/src/core/nodes/{array_get_random_element.js → arrays/get_random_element.js} +0 -0
  404. /package/backend/src/core/nodes/{array_remove_by_index.js → arrays/remove_by_index.js} +0 -0
  405. /package/backend/src/core/nodes/{bot_get_position.js → bot/get_position.js} +0 -0
  406. /package/backend/src/core/nodes/{data_array_literal.js → data/array_literal.js} +0 -0
  407. /package/backend/src/core/nodes/{data_boolean_literal.js → data/boolean_literal.js} +0 -0
  408. /package/backend/src/core/nodes/{data_get_argument.js → data/get_argument.js} +0 -0
  409. /package/backend/src/core/nodes/{data_get_bot_look.js → data/get_bot_look.js} +0 -0
  410. /package/backend/src/core/nodes/{data_get_entity_field.js → data/get_entity_field.js} +0 -0
  411. /package/backend/src/core/nodes/{data_get_server_players.js → data/get_server_players.js} +0 -0
  412. /package/backend/src/core/nodes/{data_get_variable.js → data/get_variable.js} +0 -0
  413. /package/backend/src/core/nodes/{data_length.js → data/length.js} +0 -0
  414. /package/backend/src/core/nodes/{data_make_object.js → data/make_object.js} +0 -0
  415. /package/backend/src/core/nodes/{data_number_literal.js → data/number_literal.js} +0 -0
  416. /package/backend/src/core/nodes/{data_string_literal.js → data/string_literal.js} +0 -0
  417. /package/backend/src/core/nodes/{logic_compare.js → logic/compare.js} +0 -0
  418. /package/backend/src/core/nodes/{logic_operation.js → logic/operation.js} +0 -0
  419. /package/backend/src/core/nodes/{math_operation.js → math/operation.js} +0 -0
  420. /package/backend/src/core/nodes/{math_random_number.js → math/random_number.js} +0 -0
  421. /package/backend/src/core/nodes/{object_create.js → objects/create.js} +0 -0
  422. /package/backend/src/core/nodes/{object_delete.js → objects/delete.js} +0 -0
  423. /package/backend/src/core/nodes/{object_get.js → objects/get.js} +0 -0
  424. /package/backend/src/core/nodes/{object_has_key.js → objects/has_key.js} +0 -0
  425. /package/backend/src/core/nodes/{object_set.js → objects/set.js} +0 -0
  426. /package/backend/src/core/nodes/{string_concat.js → strings/concat.js} +0 -0
  427. /package/backend/src/core/nodes/{string_contains.js → strings/contains.js} +0 -0
  428. /package/backend/src/core/nodes/{string_ends_with.js → strings/ends_with.js} +0 -0
  429. /package/backend/src/core/nodes/{string_equals.js → strings/equals.js} +0 -0
  430. /package/backend/src/core/nodes/{string_length.js → strings/length.js} +0 -0
  431. /package/backend/src/core/nodes/{string_matches.js → strings/matches.js} +0 -0
  432. /package/backend/src/core/nodes/{string_split.js → strings/split.js} +0 -0
  433. /package/backend/src/core/nodes/{string_starts_with.js → strings/starts_with.js} +0 -0
@@ -0,0 +1,871 @@
1
+ # Performance Tuning
2
+
3
+ Comprehensive guide to Linux system performance tuning covering CPU optimization, memory management, disk I/O, network performance, profiling tools, and benchmarking for maximum efficiency.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Performance Analysis Methodology](#performance-analysis-methodology)
8
+ - [CPU Optimization](#cpu-optimization)
9
+ - [Memory Tuning](#memory-tuning)
10
+ - [Disk I/O Optimization](#disk-io-optimization)
11
+ - [Network Performance](#network-performance)
12
+ - [Profiling Tools](#profiling-tools)
13
+ - [Benchmarking](#benchmarking)
14
+ - [Kernel Parameters](#kernel-parameters)
15
+ - [Best Practices](#best-practices)
16
+ - [Common Issues](#common-issues)
17
+
18
+ ## Performance Analysis Methodology
19
+
20
+ ### The USE Method (Utilization, Saturation, Errors)
21
+
22
+ ```
23
+ For every resource:
24
+ 1. Utilization: % time the resource was busy
25
+ 2. Saturation: Degree of extra work queued
26
+ 3. Errors: Count of error events
27
+ ```
28
+
29
+ **Analysis Workflow:**
30
+ ```bash
31
+ #!/bin/bash
32
+ # performance-check.sh - Quick system performance overview
33
+
34
+ echo "=== CPU Analysis ==="
35
+ uptime
36
+ mpstat -P ALL 1 1
37
+
38
+ echo -e "\n=== Memory Analysis ==="
39
+ free -h
40
+ vmstat 1 2
41
+
42
+ echo -e "\n=== Disk I/O Analysis ==="
43
+ iostat -x 1 2
44
+
45
+ echo -e "\n=== Network Analysis ==="
46
+ ss -s
47
+ sar -n DEV 1 2 2>/dev/null || echo "sysstat not installed"
48
+
49
+ echo -e "\n=== Top Processes ==="
50
+ ps aux --sort=-%cpu | head -10
51
+ ```
52
+
53
+ ## CPU Optimization
54
+
55
+ ### CPU Affinity
56
+
57
+ **Pin Process to Specific CPUs:**
58
+ ```bash
59
+ # Run process on CPUs 0-3
60
+ taskset -c 0-3 ./my-application
61
+
62
+ # Pin existing process
63
+ taskset -cp 0-3 <PID>
64
+
65
+ # View current affinity
66
+ taskset -cp <PID>
67
+
68
+ # Example: Pin nginx workers
69
+ for pid in $(pgrep nginx); do
70
+ taskset -cp 0-3 $pid
71
+ done
72
+ ```
73
+
74
+ **systemd Service CPU Affinity:**
75
+ ```ini
76
+ # /etc/systemd/system/myapp.service
77
+ [Service]
78
+ CPUAffinity=0-3
79
+ CPUQuota=200% # Allow up to 2 CPUs
80
+ CPUWeight=200 # Higher scheduling priority
81
+ ```
82
+
83
+ ### CPU Governors
84
+
85
+ ```bash
86
+ # View available governors
87
+ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
88
+
89
+ # Check current governor
90
+ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
91
+
92
+ # Set performance governor (maximum frequency)
93
+ echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
94
+
95
+ # Set powersave governor (minimum frequency)
96
+ echo powersave | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
97
+
98
+ # Install cpufrequtils for easier management
99
+ sudo apt install cpufrequtils
100
+
101
+ # Set governor permanently
102
+ sudo cpufreq-set -g performance
103
+
104
+ # Check CPU frequencies
105
+ cpufreq-info
106
+ watch -n 1 'grep MHz /proc/cpuinfo'
107
+ ```
108
+
109
+ ### Process Priority (nice/renice)
110
+
111
+ ```bash
112
+ # Start with lower priority (higher nice value = lower priority)
113
+ nice -n 10 ./cpu-intensive-job
114
+
115
+ # Start with higher priority (requires root)
116
+ sudo nice -n -10 ./critical-service
117
+
118
+ # Change priority of running process
119
+ sudo renice -n -5 -p <PID>
120
+
121
+ # Set priority for all processes of a user
122
+ sudo renice -n 5 -u username
123
+
124
+ # View process priorities
125
+ ps -eo pid,ni,comm --sort=-ni | head
126
+ ```
127
+
128
+ ### CPU Monitoring
129
+
130
+ ```bash
131
+ # Real-time CPU usage per core
132
+ mpstat -P ALL 1
133
+
134
+ # Per-process CPU usage
135
+ pidstat 1
136
+
137
+ # CPU usage history
138
+ sar -u 1 10
139
+
140
+ # Top CPU consumers
141
+ top -bn1 | head -20
142
+ ps aux --sort=-%cpu | head -10
143
+
144
+ # CPU wait time (I/O wait)
145
+ iostat -c 1
146
+ ```
147
+
148
+ ## Memory Tuning
149
+
150
+ ### Swap Configuration
151
+
152
+ ```bash
153
+ # Check current swap
154
+ free -h
155
+ swapon --show
156
+
157
+ # Create swap file
158
+ sudo fallocate -l 4G /swapfile
159
+ sudo chmod 600 /swapfile
160
+ sudo mkswap /swapfile
161
+ sudo swapon /swapfile
162
+
163
+ # Make permanent
164
+ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
165
+
166
+ # Adjust swappiness (0-100, lower = less swapping)
167
+ # Default: 60, Recommended for servers: 10
168
+ sudo sysctl vm.swappiness=10
169
+ echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.d/99-swappiness.conf
170
+
171
+ # Disable swap completely (for k8s nodes)
172
+ sudo swapoff -a
173
+ # Comment out swap in /etc/fstab
174
+ ```
175
+
176
+ ### Huge Pages
177
+
178
+ **When to Use:**
179
+ - Large memory workloads (databases, VMs)
180
+ - Reduces TLB misses
181
+ - Better for applications with large memory allocations
182
+
183
+ ```bash
184
+ # Check huge page size
185
+ grep Hugepagesize /proc/meminfo
186
+
187
+ # Configure huge pages (2MB pages)
188
+ # Calculate: (Required RAM in MB) / 2
189
+ # Example: For 4GB = 4096 / 2 = 2048 pages
190
+
191
+ # Temporary
192
+ echo 2048 | sudo tee /proc/sys/vm/nr_hugepages
193
+
194
+ # Permanent
195
+ echo 'vm.nr_hugepages=2048' | sudo tee -a /etc/sysctl.d/99-hugepages.conf
196
+ sudo sysctl -p /etc/sysctl.d/99-hugepages.conf
197
+
198
+ # Check allocation
199
+ cat /proc/meminfo | grep -i huge
200
+
201
+ # Mount hugetlbfs
202
+ sudo mkdir -p /mnt/huge
203
+ sudo mount -t hugetlbfs hugetlbfs /mnt/huge
204
+ echo 'hugetlbfs /mnt/huge hugetlbfs defaults 0 0' | sudo tee -a /etc/fstab
205
+
206
+ # Application usage (example for PostgreSQL)
207
+ # postgresql.conf
208
+ # huge_pages = on
209
+ ```
210
+
211
+ ### Memory Optimization
212
+
213
+ ```bash
214
+ # /etc/sysctl.d/99-memory.conf
215
+
216
+ # Swappiness (lower = less swap usage)
217
+ vm.swappiness = 10
218
+
219
+ # Cache pressure (higher = more aggressive cache reclaim)
220
+ vm.vfs_cache_pressure = 50
221
+
222
+ # Dirty page ratios
223
+ vm.dirty_ratio = 15 # % of RAM for dirty pages before blocking
224
+ vm.dirty_background_ratio = 5 # % to start background writes
225
+
226
+ # Overcommit strategy
227
+ vm.overcommit_memory = 1 # 0=heuristic, 1=always, 2=never
228
+ vm.overcommit_ratio = 50 # % of RAM for overcommit
229
+
230
+ # Minimum free memory (in KB)
231
+ vm.min_free_kbytes = 65536
232
+
233
+ # Apply changes
234
+ sudo sysctl -p /etc/sysctl.d/99-memory.conf
235
+ ```
236
+
237
+ ### Memory Monitoring
238
+
239
+ ```bash
240
+ # Memory overview
241
+ free -h
242
+ cat /proc/meminfo
243
+
244
+ # Detailed memory stats
245
+ vmstat 1 5
246
+
247
+ # Per-process memory
248
+ ps aux --sort=-%mem | head -10
249
+ pmap -x <PID>
250
+
251
+ # Memory pressure (PSI - Pressure Stall Information)
252
+ cat /proc/pressure/memory
253
+
254
+ # OOM killer history
255
+ dmesg | grep -i oom
256
+
257
+ # Memory bandwidth (if available)
258
+ perf stat -e 'mem-loads,mem-stores' -a sleep 5
259
+ ```
260
+
261
+ ## Disk I/O Optimization
262
+
263
+ ### I/O Schedulers
264
+
265
+ ```bash
266
+ # Check current scheduler
267
+ cat /sys/block/sda/queue/scheduler
268
+
269
+ # Available schedulers: none, mq-deadline, kyber, bfq
270
+
271
+ # Set scheduler temporarily
272
+ echo mq-deadline | sudo tee /sys/block/sda/queue/scheduler
273
+
274
+ # Set permanently (via kernel parameter)
275
+ # Edit /etc/default/grub
276
+ GRUB_CMDLINE_LINUX="elevator=mq-deadline"
277
+ sudo update-grub
278
+
279
+ # Recommended schedulers:
280
+ # - SSD/NVMe: none (no scheduler, direct I/O)
281
+ # - HDD: mq-deadline or bfq
282
+ # - Database workloads: mq-deadline
283
+ # - Desktop: bfq
284
+ ```
285
+
286
+ ### Readahead Tuning
287
+
288
+ ```bash
289
+ # Check current readahead
290
+ sudo blockdev --getra /dev/sda
291
+
292
+ # Set readahead (in 512-byte sectors)
293
+ # Default: 256 (128KB)
294
+ # Recommended for sequential: 4096 (2MB)
295
+ sudo blockdev --setra 4096 /dev/sda
296
+
297
+ # Make permanent
298
+ echo 'ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/read_ahead_kb}="2048"' | \
299
+ sudo tee /etc/udev/rules.d/60-readahead.rules
300
+ ```
301
+
302
+ ### Filesystem Mount Options
303
+
304
+ ```bash
305
+ # /etc/fstab optimization examples
306
+
307
+ # noatime: Don't update access time (significant performance boost)
308
+ UUID=xxx /data ext4 defaults,noatime,nodiratime 0 2
309
+
310
+ # For databases (PostgreSQL, MySQL)
311
+ UUID=xxx /var/lib/postgresql ext4 noatime,data=ordered,barrier=1 0 2
312
+
313
+ # For high-performance write workloads
314
+ UUID=xxx /data xfs noatime,nodiratime,logbufs=8,logbsize=256k 0 2
315
+
316
+ # For SSDs
317
+ UUID=xxx /data ext4 noatime,discard 0 2
318
+ ```
319
+
320
+ ### I/O Monitoring
321
+
322
+ ```bash
323
+ # Disk I/O statistics
324
+ iostat -x 1 5
325
+
326
+ # Per-process I/O
327
+ iotop
328
+ iotop -oPa # Show accumulated I/O
329
+
330
+ # Disk usage
331
+ df -h
332
+ du -sh /var/* | sort -h
333
+
334
+ # Find large files
335
+ find / -type f -size +1G -exec ls -lh {} \;
336
+
337
+ # I/O wait time
338
+ vmstat 1 5 # Check 'wa' column
339
+
340
+ # Detailed I/O stats
341
+ pidstat -d 1
342
+
343
+ # Block device stats
344
+ cat /proc/diskstats
345
+ ```
346
+
347
+ ## Network Performance
348
+
349
+ ### TCP/IP Tuning
350
+
351
+ ```bash
352
+ # /etc/sysctl.d/99-network-performance.conf
353
+
354
+ # === TCP Buffer Sizes ===
355
+ # Increase for high-bandwidth networks (10Gbps+)
356
+ net.core.rmem_max = 134217728 # 128MB
357
+ net.core.wmem_max = 134217728 # 128MB
358
+ net.core.rmem_default = 16777216 # 16MB
359
+ net.core.wmem_default = 16777216 # 16MB
360
+
361
+ # TCP autotuning
362
+ net.ipv4.tcp_rmem = 4096 87380 134217728
363
+ net.ipv4.tcp_wmem = 4096 65536 134217728
364
+
365
+ # === TCP Performance ===
366
+ # Window scaling
367
+ net.ipv4.tcp_window_scaling = 1
368
+
369
+ # Timestamps
370
+ net.ipv4.tcp_timestamps = 1
371
+
372
+ # Selective acknowledgments
373
+ net.ipv4.tcp_sack = 1
374
+
375
+ # TCP Fast Open
376
+ net.ipv4.tcp_fastopen = 3
377
+
378
+ # === Congestion Control ===
379
+ # BBR (recommended for modern kernels)
380
+ net.core.default_qdisc = fq
381
+ net.ipv4.tcp_congestion_control = bbr
382
+
383
+ # === Connection Handling ===
384
+ # SYN backlog
385
+ net.ipv4.tcp_max_syn_backlog = 8192
386
+ net.core.somaxconn = 4096
387
+
388
+ # Connection tracking
389
+ net.netfilter.nf_conntrack_max = 1000000
390
+ net.nf_conntrack_max = 1000000
391
+
392
+ # TIME_WAIT reuse
393
+ net.ipv4.tcp_tw_reuse = 1
394
+ net.ipv4.tcp_fin_timeout = 15
395
+
396
+ # Keep-alive
397
+ net.ipv4.tcp_keepalive_time = 300
398
+ net.ipv4.tcp_keepalive_probes = 5
399
+ net.ipv4.tcp_keepalive_intvl = 15
400
+
401
+ # === Network Buffers ===
402
+ net.core.netdev_max_backlog = 5000
403
+ net.core.netdev_budget = 600
404
+
405
+ # Apply settings
406
+ sudo sysctl -p /etc/sysctl.d/99-network-performance.conf
407
+ ```
408
+
409
+ ### NIC Ring Buffers
410
+
411
+ ```bash
412
+ # Check current ring buffer sizes
413
+ ethtool -g eth0
414
+
415
+ # Increase ring buffer size
416
+ sudo ethtool -G eth0 rx 4096 tx 4096
417
+
418
+ # Make permanent (systemd)
419
+ # /etc/systemd/system/ethtool-ring.service
420
+ [Unit]
421
+ Description=Ethtool ring buffer configuration
422
+ After=network.target
423
+
424
+ [Service]
425
+ Type=oneshot
426
+ ExecStart=/sbin/ethtool -G eth0 rx 4096 tx 4096
427
+
428
+ [Install]
429
+ WantedBy=multi-user.target
430
+ ```
431
+
432
+ ### Network Monitoring
433
+
434
+ ```bash
435
+ # Interface statistics
436
+ ip -s link show eth0
437
+ netstat -i
438
+
439
+ # Bandwidth monitoring
440
+ iftop -i eth0
441
+ nload eth0
442
+
443
+ # Connection statistics
444
+ ss -s
445
+
446
+ # Network throughput
447
+ iperf3 -s # Server
448
+ iperf3 -c server-ip # Client
449
+
450
+ # Packet statistics
451
+ sar -n DEV 1 5
452
+
453
+ # TCP statistics
454
+ nstat -az | grep -i tcp
455
+ ```
456
+
457
+ ## Profiling Tools
458
+
459
+ ### perf
460
+
461
+ ```bash
462
+ # Install perf
463
+ sudo apt install linux-tools-$(uname -r)
464
+
465
+ # Record system-wide CPU usage
466
+ sudo perf record -a -g sleep 30
467
+
468
+ # Analyze recorded data
469
+ sudo perf report
470
+
471
+ # Record specific process
472
+ sudo perf record -p <PID> -g sleep 30
473
+
474
+ # Live top (like top but with perf)
475
+ sudo perf top
476
+
477
+ # CPU cache statistics
478
+ sudo perf stat -e cache-references,cache-misses ./application
479
+
480
+ # Memory access patterns
481
+ sudo perf stat -e mem-loads,mem-stores ./application
482
+
483
+ # Branch prediction
484
+ sudo perf stat -e branches,branch-misses ./application
485
+
486
+ # Flamegraph generation
487
+ sudo perf record -F 99 -a -g -- sleep 30
488
+ sudo perf script | ./stackcollapse-perf.pl | ./flamegraph.pl > flamegraph.svg
489
+ ```
490
+
491
+ ### strace
492
+
493
+ ```bash
494
+ # Trace system calls
495
+ strace ./application
496
+
497
+ # Trace specific syscalls
498
+ strace -e open,read,write ./application
499
+
500
+ # Attach to running process
501
+ sudo strace -p <PID>
502
+
503
+ # Count syscalls
504
+ strace -c ./application
505
+
506
+ # Save to file
507
+ strace -o trace.log ./application
508
+
509
+ # Trace with timestamps
510
+ strace -tt ./application
511
+
512
+ # Trace child processes
513
+ strace -f ./application
514
+ ```
515
+
516
+ ### ftrace
517
+
518
+ ```bash
519
+ # Function tracing
520
+ cd /sys/kernel/debug/tracing
521
+
522
+ # Enable function tracing
523
+ echo function > current_tracer
524
+
525
+ # Set filter
526
+ echo 'sys_read' > set_ftrace_filter
527
+
528
+ # Enable tracing
529
+ echo 1 > tracing_on
530
+
531
+ # View trace
532
+ cat trace
533
+
534
+ # Disable tracing
535
+ echo 0 > tracing_on
536
+ ```
537
+
538
+ ### BPF/bpftrace
539
+
540
+ ```bash
541
+ # Install bpftrace
542
+ sudo apt install bpftrace
543
+
544
+ # Trace open() syscalls
545
+ sudo bpftrace -e 'tracepoint:syscalls:sys_enter_open { printf("%s %s\n", comm, str(args->filename)); }'
546
+
547
+ # Count syscalls by process
548
+ sudo bpftrace -e 'tracepoint:raw_syscalls:sys_enter { @[comm] = count(); }'
549
+
550
+ # TCP connection tracking
551
+ sudo bpftrace -e 'kprobe:tcp_connect { printf("PID %d connecting\n", pid); }'
552
+
553
+ # Disk I/O latency
554
+ sudo bpftrace -e 'tracepoint:block:block_rq_issue { @start[arg0] = nsecs; }
555
+ tracepoint:block:block_rq_complete /@start[arg0]/ {
556
+ @usecs = hist((nsecs - @start[arg0]) / 1000);
557
+ delete(@start[arg0]);
558
+ }'
559
+ ```
560
+
561
+ ## Benchmarking
562
+
563
+ ### CPU Benchmarks
564
+
565
+ ```bash
566
+ # sysbench CPU test
567
+ sudo apt install sysbench
568
+
569
+ # Single-threaded
570
+ sysbench cpu --cpu-max-prime=20000 run
571
+
572
+ # Multi-threaded
573
+ sysbench cpu --threads=4 --cpu-max-prime=20000 run
574
+
575
+ # stress-ng
576
+ sudo apt install stress-ng
577
+
578
+ # CPU stress test
579
+ stress-ng --cpu 4 --timeout 60s --metrics
580
+ ```
581
+
582
+ ### Memory Benchmarks
583
+
584
+ ```bash
585
+ # sysbench memory test
586
+ sysbench memory --memory-total-size=10G --memory-oper=read run
587
+ sysbench memory --memory-total-size=10G --memory-oper=write run
588
+
589
+ # RAM speed test
590
+ sudo apt install mbw
591
+ mbw 1024
592
+
593
+ # Memory bandwidth
594
+ sysbench memory --threads=4 --memory-total-size=10G run
595
+ ```
596
+
597
+ ### Disk I/O Benchmarks
598
+
599
+ ```bash
600
+ # fio - Flexible I/O tester
601
+ sudo apt install fio
602
+
603
+ # Random read test
604
+ fio --name=randread --ioengine=libaio --iodepth=16 --rw=randread \
605
+ --bs=4k --direct=1 --size=1G --numjobs=4 --runtime=60 --group_reporting
606
+
607
+ # Sequential write test
608
+ fio --name=seqwrite --ioengine=libaio --iodepth=16 --rw=write \
609
+ --bs=1M --direct=1 --size=1G --numjobs=1 --runtime=60
610
+
611
+ # Mixed workload (70% read, 30% write)
612
+ fio --name=mixed --ioengine=libaio --iodepth=16 --rw=randrw --rwmixread=70 \
613
+ --bs=4k --direct=1 --size=1G --numjobs=4 --runtime=60 --group_reporting
614
+
615
+ # dd test (simple sequential)
616
+ dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct
617
+ dd if=testfile of=/dev/null bs=1G count=1 iflag=direct
618
+ ```
619
+
620
+ ### Network Benchmarks
621
+
622
+ ```bash
623
+ # iperf3
624
+ sudo apt install iperf3
625
+
626
+ # Server
627
+ iperf3 -s
628
+
629
+ # Client (TCP)
630
+ iperf3 -c server-ip -t 30
631
+
632
+ # Client (UDP)
633
+ iperf3 -c server-ip -u -b 1G
634
+
635
+ # Parallel streams
636
+ iperf3 -c server-ip -P 4
637
+
638
+ # netperf
639
+ sudo apt install netperf
640
+
641
+ # TCP stream test
642
+ netperf -H server-ip -t TCP_STREAM
643
+
644
+ # TCP request/response
645
+ netperf -H server-ip -t TCP_RR
646
+ ```
647
+
648
+ ## Kernel Parameters
649
+
650
+ ### Complete Performance Tuning Configuration
651
+
652
+ ```bash
653
+ # /etc/sysctl.d/99-performance.conf
654
+
655
+ # === CPU ===
656
+ # Scheduler
657
+ kernel.sched_migration_cost_ns = 5000000
658
+ kernel.sched_autogroup_enabled = 0
659
+
660
+ # === Memory ===
661
+ vm.swappiness = 10
662
+ vm.vfs_cache_pressure = 50
663
+ vm.dirty_ratio = 15
664
+ vm.dirty_background_ratio = 5
665
+ vm.min_free_kbytes = 65536
666
+
667
+ # Huge pages
668
+ vm.nr_hugepages = 1024
669
+
670
+ # === Disk I/O ===
671
+ # Writeback
672
+ vm.dirty_writeback_centisecs = 500
673
+ vm.dirty_expire_centisecs = 3000
674
+
675
+ # === Network ===
676
+ # Buffer sizes
677
+ net.core.rmem_max = 134217728
678
+ net.core.wmem_max = 134217728
679
+ net.ipv4.tcp_rmem = 4096 87380 134217728
680
+ net.ipv4.tcp_wmem = 4096 65536 134217728
681
+
682
+ # TCP performance
683
+ net.ipv4.tcp_window_scaling = 1
684
+ net.ipv4.tcp_timestamps = 1
685
+ net.ipv4.tcp_sack = 1
686
+ net.ipv4.tcp_fastopen = 3
687
+
688
+ # Congestion control
689
+ net.core.default_qdisc = fq
690
+ net.ipv4.tcp_congestion_control = bbr
691
+
692
+ # Connection handling
693
+ net.ipv4.tcp_max_syn_backlog = 8192
694
+ net.core.somaxconn = 4096
695
+ net.core.netdev_max_backlog = 5000
696
+
697
+ # TIME_WAIT
698
+ net.ipv4.tcp_tw_reuse = 1
699
+ net.ipv4.tcp_fin_timeout = 15
700
+
701
+ # === File Descriptors ===
702
+ fs.file-max = 2097152
703
+ fs.inotify.max_user_watches = 524288
704
+
705
+ # === Security (with performance consideration) ===
706
+ kernel.randomize_va_space = 2
707
+ kernel.kptr_restrict = 1
708
+
709
+ # Apply
710
+ sudo sysctl -p /etc/sysctl.d/99-performance.conf
711
+ ```
712
+
713
+ ## Best Practices
714
+
715
+ ### 1. Measure Before Optimizing
716
+
717
+ ```bash
718
+ # Establish baseline
719
+ #!/bin/bash
720
+ echo "=== Baseline Performance ==="
721
+ echo "Date: $(date)"
722
+ echo ""
723
+
724
+ # CPU
725
+ echo "CPU Load:"
726
+ uptime
727
+
728
+ # Memory
729
+ echo -e "\nMemory:"
730
+ free -h
731
+
732
+ # Disk I/O
733
+ echo -e "\nDisk I/O:"
734
+ iostat -x 1 2 | tail -n +4
735
+
736
+ # Network
737
+ echo -e "\nNetwork:"
738
+ ss -s
739
+
740
+ # Save baseline
741
+ ./baseline.sh > baseline-$(date +%Y%m%d).txt
742
+ ```
743
+
744
+ ### 2. One Change at a Time
745
+
746
+ - Make single parameter changes
747
+ - Document each change
748
+ - Measure impact before next change
749
+ - Keep rollback plan ready
750
+
751
+ ### 3. Test in Staging First
752
+
753
+ ```bash
754
+ # Never tune production directly
755
+ # Use staging environment
756
+ # Load test after changes
757
+ # Monitor for regressions
758
+ ```
759
+
760
+ ### 4. Monitor Continuously
761
+
762
+ ```bash
763
+ # Set up monitoring before tuning
764
+ # Track:
765
+ # - CPU utilization
766
+ # - Memory usage
767
+ # - Disk I/O wait
768
+ # - Network throughput
769
+ # - Application latency
770
+ ```
771
+
772
+ ### 5. Document Everything
773
+
774
+ ```bash
775
+ # Performance tuning log
776
+ # /var/log/performance-tuning.log
777
+ Date: 2025-01-15
778
+ Change: Increased TCP buffer sizes
779
+ Parameter: net.core.rmem_max = 134217728
780
+ Reason: High-bandwidth network, buffer exhaustion
781
+ Result: Throughput increased from 800Mbps to 9.5Gbps
782
+ ```
783
+
784
+ ## Common Issues
785
+
786
+ ### High CPU Usage
787
+
788
+ ```bash
789
+ # Identify CPU hogs
790
+ top -bn1 | head -20
791
+ ps aux --sort=-%cpu | head -10
792
+
793
+ # Check CPU wait time
794
+ iostat -c 1 5
795
+
796
+ # Profile application
797
+ sudo perf top -p <PID>
798
+
799
+ # Solutions:
800
+ # - Optimize code
801
+ # - Increase CPU quota
802
+ # - Horizontal scaling
803
+ # - Better algorithm
804
+ ```
805
+
806
+ ### Memory Exhaustion
807
+
808
+ ```bash
809
+ # Check memory usage
810
+ free -h
811
+ ps aux --sort=-%mem | head -10
812
+
813
+ # Check for memory leaks
814
+ valgrind --leak-check=full ./application
815
+
816
+ # OOM killer logs
817
+ dmesg | grep -i oom
818
+
819
+ # Solutions:
820
+ # - Increase RAM
821
+ # - Fix memory leaks
822
+ # - Adjust swappiness
823
+ # - Add swap space
824
+ # - Optimize application
825
+ ```
826
+
827
+ ### Disk I/O Bottleneck
828
+
829
+ ```bash
830
+ # Check I/O wait
831
+ iostat -x 1 5
832
+ vmstat 1 5
833
+
834
+ # Find I/O intensive processes
835
+ iotop -oPa
836
+
837
+ # Solutions:
838
+ # - Use SSD instead of HDD
839
+ # - Optimize I/O scheduler
840
+ # - Increase readahead
841
+ # - Use RAID for performance
842
+ # - Add more disks
843
+ # - Optimize application queries
844
+ ```
845
+
846
+ ### Network Congestion
847
+
848
+ ```bash
849
+ # Check network stats
850
+ ss -s
851
+ netstat -i
852
+ sar -n DEV 1 5
853
+
854
+ # Check for dropped packets
855
+ ethtool -S eth0 | grep drop
856
+
857
+ # Solutions:
858
+ # - Increase TCP buffers
859
+ # - Use BBR congestion control
860
+ # - Increase ring buffers
861
+ # - Check for bandwidth limits
862
+ # - Optimize application
863
+ ```
864
+
865
+ ---
866
+
867
+ **Related Topics:**
868
+ - See [linux-administration.md](linux-administration.md) for system management
869
+ - See [troubleshooting-guide.md](troubleshooting-guide.md) for debugging
870
+ - See [system-monitoring.md](system-monitoring.md) for monitoring setup
871
+ - See [networking-fundamentals.md](networking-fundamentals.md) for network tuning