Как увеличить vm.max_map_count в AWS ECS fargate? - PullRequest
0 голосов
/ 12 июля 2020

Я пытаюсь запустить приложение sonarqube на платформе AWS fargate. Когда я запускаю необработанное изображение docker, оно работает как шарм. Но если я передаю в качестве аргумента свойства JDB C, я столкнусь со следующей проблемой. Судя по всему, поиску elasti c нужен новый конфиг. Если это кластер ECS, я бы добавил s sh в экземпляры EC2 и обновил эти свойства. В случае фаргейта, как мне этого добиться?

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

1 Ответ

1 голос
/ 12 июля 2020

Из-за проблемы с github это кажется невозможным, поскольку в Fargate нет экземпляра EC2 или Host ivolvole.

обходные пути для max_map_count ошибки, похоже, устанавливают max_memory_map непосредственно на хост (что может привести к нежелательным побочным эффектам или использование флага sysctl в команде docker run. К сожалению, ни один из этих параметров не поддерживается в Fargate, так как он предполагает взаимодействие с самим экземпляром контейнера.

Но другой способ - увеличить file limit и отключить проверку mmap.

I had to properly configure U limits on my ECS task definition, something like:
"ulimits": [
  {
    "name": "nofile",
    "softLimit": 65535,
    "hardLimit": 65535
  }
]

Я отключил mmap в ElasticSearch, который получает избавиться от требования настройки max_map_count. Это можно сделать, настроив настройку sonar.search.javaAdditionalOpts SonarQube. Я не смог сделать это с переменной окружения, так как ECS, похоже, их съедает, но в конце концов я просто передал его как параметр для контейнера, который работает, поскольку точка входа установлена ​​и правильно использует аргументы. В моем случае:

"command": [
  "-Dsonar.search.javaAdditionalOpts=-Dnode.store.allow_mmapfs=false"
]

sonarqube disab le nmap

...