Linux и буфер памяти/кэш и дисковое хранилище

Отредактировано Внимательно изучив файл dockerfile, вы не устанавливаете tomcat, перейдите по этой ссылке, чтобы начать :https://gist.github.com/lobster1234/af2dc4eef3ee75117043d950c2c1ec2b

Вам нужно немного отладить его... Сначала нужно запустить контейнер и сопоставить порты :docker run -it -p 8080:8080 $container_name

, затем убедитесь, что брандмауэр отключен в контейнере, вы можете перейти в контейнер с помощью docker exec -it $container_name bashи запустить ufw disableеще одна вещь, которую нужно сделать, пока вы находитесь внутри контейнера, это проверить, что сервер tomacat действительно работает...

сказав, что^ ваш файл докера не показывает, что вы разрешаете запуск tomcat как службы по умолчанию или вызываете скрипт, который будет запускать его (я почти уверен, что это выпуск)

Если сервер tomcat запущен, вы должны посмотреть, нет ли ошибок в журналах tomcat, которые могут указывать на проблему

удачи

-2
12.03.2020, 10:36
2 ответа

saved on memory cache

На самом деле такой вещи не существует. Вы начинаете с этого баффа/кеша:

]# free -g
              total        used        free      shared  buff/cache   available
Mem:              7           0           3           0           3           6
Swap:             0           0           0

Это дает объем оперативной памяти, используемой в настоящее время в качестве буфера или кэша. Ядро делает это именно потому, что диски медленные, и часто (, как показано ), достаточно оперативной памяти.

Если вы хотите зарезервировать часть оперативной памяти для определенных файлов, вы можете поместить их на RAM-диск(mount -t tmpfs...). Но тогда вы должны не забыть скопировать их обратно на диск.

1
28.04.2021, 23:20

Я думаю, у вас может быть неправильное представление о том, как работает иерархия памяти. Иерархия идет от ближайшего к ЦП/самого быстрого к самому медленному:

Регистр ЦП > Кэш-память > ОЗУ/основная память > Диск

Кэш-память находится между процессором и основной памятью, и доступ к ней быстрее, чем к основной памяти. Как правило, фрагменты ближайших данных (, то есть копии блоков диапазонов адресов ), копируются в кэш при доступе к ячейке памяти. Затем при следующем доступе к ячейке памяти сначала проверяется кеш, чтобы убедиться, что данные уже там, и можно сэкономить время, не обращаясь к основной памяти.

Итак, я думаю, что ваш вопрос не совсем уместен. Обычно между основной памятью и диском нет промежуточного хранилища или кэша. Данные, которые используются в данный момент, хранятся в оперативной памяти, и это наиболее эффективный способ хранения и доступа к ним. Если вы хотите сохранить его на потом, после выключения машины вы скопируете его на диск (, потому что это ваш единственный вариант ). Если вы хотите получить доступ к данным сейчас и быстро, вам не нужно прикасаться к диску, если в этом нет необходимости.

Мне неизвестны какие-либо средства простого переопределения управления кэш-памятью и сохранения чего-либо в кэше, но явно не в ОЗУ. Как правило, уже существуют очень хорошие и эффективные системы для управления кэшированием памяти.

Кроме того, я не верю, что данные удаляются из кэш-памяти через определенное количество времени. Как правило, он вытесняется более свежими данными, к которым ЦП хочет получить доступ.

0
28.04.2021, 23:20

Теги

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