mssql-сервер на debian сломался после обновления?

Esto no es un error. Aparentemente, la contabilidad de la memoria de cgroup incluye páginas de caché de disco que fueron utilizadas por los procesos. Si lo desea, puede solicitar descartar las páginas de caché que pertenecen a un cgroup usando force_empty.

Es posible que se pregunte acerca de las páginas de caché que utilizan varios cgroups.cgroup-v2.rst(el sucesor de la versión que estoy usando )nos dice:

A memory area is charged to the cgroup which instantiated it and stays charged to the cgroup until the area is released. Migrating a process to a different cgroup doesn't move the memory usages that it instantiated while in the previous cgroup to the new cgroup.

A memory area may be used by processes belonging to different cgroups. To which cgroup the area will be charged is in-deterministic; however, over time, the memory area is likely to end up in a cgroup which has enough memory allowance to avoid high reclaim pressure.

cgroup-v1/memory.txttambién dice que "las páginas están vinculadas a -memcg LRU exclusivamente", por lo que probablemente también funcione de manera similar a la descripción anterior. Es más difícil confiar en este documento, ya que comienza con un descargo de responsabilidad que dice que está "irremediablemente desactualizado y solicita una reescritura completa".

Es decir. force_emptysolicita eliminar todas estas páginas de inmediato. Si hay otro cgroup que también quiere usarlos, tendrá que volver a leerlos desde el disco.

1
07.07.2019, 19:34
1 ответ

Год назад mssql перешел из корневых пользовательских образов в не -корневые. Это привело к тому, что контейнеры сервера docker sql -с привязанными томами, запущенные на хосте Linux, имеют проблему с разрешением (=> не имеют разрешения на запись в связанный том ).

Существует несколько решений этой проблемы:

1. Запустите Docker от имени пользователя root.

напр. сочинять:

version: '3.6'
services:
  mssql:
    image: mcr.microsoft.com/mssql/server:2019-latest
    user: root
    ports:
      - 1433:1433
    environment:
      - ACCEPT_EULA=Y
      - SA_PASSWORD=BLAH
    volumes:
      -./data:/var/opt/mssql/data

Источник:https://github.com/microsoft/mssql-docker/issues/13#issuecomment-641904197

2. Настройте правильного владельца каталога (mssql)

  1. Проверка идентификатора пользователя mssql на образе докера sudo docker run -it mcr.microsoft.com/mssql/server id mssqlдает:uid=10001(mssql) gid=0(root) groups=0(root)
  2. Изменить владельца папкиsudo chown 10001 VOLUME_DIRECTORY

Источник на испанском языке:https://www.eiximenis.dev/posts/2020-06-26-sql-server-docker-no-se-ejecuta-en-root/

3. Полный доступ (не рекомендуется)

Предоставить полный доступ к файлам базы данных на хостеsudo chmod 777 -R VOLUME_DIRECTORY

0
06.01.2021, 14:02

Теги

Похожие вопросы