vyacheslavdmitrievich79, а зачем в конфиге include /etc/nginx/global_server.conf? Вообще нужно из конфига для начала нужно убрать весь этот мусор. И сертификаты тоже. Оставить только минимум необходимого (php убрать тоже).
vyacheslavdmitrievich79, возможно в вашей конфигурации существует еще один веб сервер перед вашим? Это VPS/VDS? ssh доступ к нему есть? Что показывает: netstat -plan | grep tcp | grep LISTEN
Что показывает: ifconfig -a
heinlein, VPS означает разделение ресурсов с соседями. В зависимости от используемой схемы могут быть нюасы при которых соседи будут забирать ресурсы. С учетом того, что "происходит в разное время", то вероятна именно эта ситуация. worker_processes возможно не будет иметь эффекта, т.к. в хост машине скорее всего выделяется просто время на ЦПУ.
На сколько большой файл? Для исключения проблем чтения с диска и при небольшом размере файла есть смысл сложить его в ОЗУ. Либо через ramdisk (Хранение кэша в оперативной памяти) либо хранением в том же Redis. Если и после этого проблемы будут происходить, то значит проблема именно в сети, но повлиять на это в рамках этого VPS вероятно не получится. Но если это сеть, то стоит тогда попробывать связаться с хостером с вопросом каким образом виртуальке выделяется сеть и какую полосу они могут гарантировать в какой промежуток времени. Т.е по сути уточнить, каким образом происходит распределение ресурсов между виртуальными серверами.
Даша Циклаури, просто если времени мало, то нужно идти проверенным, а главное работающим методом. Конфиги выносим из контейнера под volumes. Потом даже без всяких puppet/zookeeper можно на коленке на bash написать примитивную обновлялку по ssh.
Даша Циклаури, ну вы героически загоняете себя в угол и теперь пытаетесь перескочить забор который воздвигли. Вот прямо реально без кластера не обойтись? Сколько коннектов онлайт держиться?
Что мешает конфиги монтировать снаружи через volumes? А за их накатку и консистентность снаружи вполне себе может отвечать любая система управления конфигурациями в духе Puppet, Chef, Ansible, Saltstack.
MODX314, не использовались, т. к. система создавалась 13 лет назад. Тогда это сервиса наверное и не было. А сами пользователи не могут создавать точки по бизнес процессу. Технически-то проблем с этим нет.
MODX314, не понял вопроса. В публичной части информацию рисует JavaScript под API Яндекс.Карты. В админке местоположение задается перетаскиванием метки, при сохранении в базу пишутся координаты точки.
Adamos, практика показывает, что джунам все варианты равнозначны, т.к. изначально они даже не понимают проблемы "запустилась вторая копия программы, пошла гонка за общие ресурсы". Поэтому на мой взгляд важно сразу показать более быстрый и устойчивый вариант.
Adamos, ничуть не судного. Затраты через реализацию lock файла, PID и мьютекса на семафорах примерно равнозначны. Но последний работает быстрее (ввиду отсутствия дисковых операций) и в пространстве ядра. Так почему бы его не использовать?
У решения есть несколько проблем который нужно понимать, что бы использовать этот метод. PID имеет ограничение по размеру поэтому ОС его переиспользует. И возможна ситуация, когда ваш скрипт умер, в PID файл записался ID, но к моменту перезапуска вашего скрипта этот ID операционкой был выдан другому процессу. В самом плохом варианте демону (допустим nginx). Тогда работа вашего ПО заблочиться до тех пор, пока демон не умрет/перезапуститься. Если конечно вы про эту ситуацию заранее не подумайне и не заложите в код.
Может возникнуть вопрос, каков шанс такой ситуации? Сильно вероятный когда на сервере очень часто останавливаются и запускаются программы и скрипт часто крашиться без удаления PID файла.
Adamos, если рассматривать процесс как линейный и последовательный то да. Но в реальной ОС общего назначения (и даже в RTOS) все происходит не линейно и не последовательно. Что порождает "магические" сложно отлавливаемые баги в ПО.
Adamos, почему не может? Как часто я это слышу от разработчиков и так же часто это "не может" выстреливает им в ногу. Например, сервер тупит и планировщик ОС не дает процессу ЦПУ или диск. Или админы выкрутили nice процесса в дно и ему планировщик ресурсов не дает.
В общем это вопрос возможности. Это возможно. А что возможно и бывает и стреляет. Шанс не очень высокий да, но нужно понимать, что он есть.
А вас не смущает, что между фазами "проверить наличие файла" и "создать файл" проходит некоторое время в течении которого другой процесс может создать такой файл раньше?