Ответы пользователя по тегу Linux
  • Откуда информация о быстрой порче SSD?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Порча от swap - это миф?


    Давайте так. Порча от swap - это миф. Порча от частых перезаписей - не миф. Ячейки деградируют, SSD портится... со временем. Для домашнего ноутбука это время вполне может быть больше средней жизни ноутбука у человека.

    Если у вас мало оперативки - swap на ssd вполне себе нормальное решение. Но только это будет означать что использоваться он будет намного более интенсивно нежели в системах с большим объемом памяти.

    Словом как бы вы не изощрялись, а бэкапы важных данных вам стоит делать в любом случае и тогда в целом пофигу.
    Ответ написан
    4 комментария
  • Есть ПО для централизованого управления серверами через SSH?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    имеете в виду именно "кинуть другому серваку задачу" или "дернуть что-то на нескольких серверах"?

    для первого - gearman и подобные, а делать это через SSH или как-то еще - решать вам, вы всегда можете организовать SSH тунели между серверами.

    для второго - ansible.
    Ответ написан
    1 комментарий
  • Кто понял docker?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    для доступа к ФС свой


    Нет, для доступа к ФC используйте именованные волумы (named volumes). Контейнеры (data-only) для этог оне нужны.

    Между собой без проблем, а как отправить это дело на рабочий сервер, не ручками?


    docker registry, либо используем платный либо ставим у себя и там храним образы. То есть если кто-то решил обновиться до php7.0 мы должны заменить базовый контейнер, проверить что все работает, запушить... а у всх все подтянется.

    Что делать, как обновлять к примеру базу данных миграциями, чтобы продакт получал готовую базу и сырцы движка сайта? Есть подозрения, что это к докеру не имеет отношения.


    Именно, никакого отношения к докеру. Я обычно миграции накатываю прямо при старте контейнера. Так надежнее.

    Может кто поделиться ссылочкой на статью

    На статью - нет, их много. Могу поделиться тем как я использую docker на своих проектах. Там описан процесс сборки и деплоя в крадце. В идеале сборкой и деплоем должен заведовать CI-сервер а не руками локально:

    https://github.com/intellectsoft-uk/symfony-skeleton
    Ответ написан
    5 комментариев
  • Docker. Почему при переключении на другого юзера пропадает переменная окружения?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Когда захожу во второй контейнер и переключаюсь на юзера docker переменная PATH сбрасывается


    Ну так вы сменили "окружение" по сути. Единственный способ этого избежать - записать ее в /etc/environment.

    В целом же проще будет просто поместить ваш бинарник в /usr/local/bin например.
    Ответ написан
    Комментировать
  • Что происходит при запросе к веб-серверу?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    итак, поскольку у нас слишком много вариантов "как оно может быть", мы должны разбить все на следующие вопросы:

    1) как запрос идет от браузера к http серверу. В этом плане мы будем рассматривать apache как черный ящик. В этом плане разницы между apache, nginx, lighttpd и т.д. мы не увидим.

    тут можно либо погуглить в общем, либо и этот впрос разбить на: почитать про DNS, прочитать про HTTP (это вообще разные вещи). Паралельно было бы неплохо почитать про стэк TCP/IP в общем, и разобраться что такое TCP и что такое UDP.

    2) Далее, в случае с PHP, мы должны почитать про PHP SAPI. То есть в случае с apache у нас SAPI предоставляется модулем apache2-mod-php и тд. а php-fpm уже самодостаточный сервер и менеджер php процессов, который так же предоставляет свое SAPI. По сути это та штука, которая "разбирает" и готовит запрос для php. Ну и да, стоит сказать что уже есть HTTP сервера на PHP (как альтернатива php-fpm), это и ayres и php-pm и reactphp... и судя по динамиче это будет все больше развиваться.

    3) как -только мы разобрались как работает браузер с web-сервером, и как php обрабатывает http, мы должны уже исходить из конкретной связки что бы понять как web-сервер работает с php. Предыдущий пункт с большего это покрывает, особенно в случае с apache. Но вот php-fpm самодостаточная штука, и ей ничего не нужно. А стало быть nginx просто будет проксировать запросы на php-fpm.
    Ответ написан
    Комментировать
  • Как сделать отказоустойчивый LAMP кластер для высоконагруженных WEB-приложений?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    как бы ты сделал отказоустойчивый LAMP кластер для высоконагруженных WEB-приложений?


    по поводу производительности

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

    ПО поводу надежности:

    ищим single point of failure. ну то есть если у нас есть база данных - то ее должно быть две на случай если один сервак выйдет из строя. А еще должен быть сверху балансировщик который раскидывает запросы. А что бы невилировать вероятность того, что и балансировщик выйдет из строя - балансировщик на уровне DNS.

    ну то есть у вас не должно быть чего-то, что будет критическим местом в системе. Все должно дублироваться на случай падения.
    Ответ написан
    Комментировать
  • Какую ОС выбрать для локальной разработки на php?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    это вообще нормально для профессиональных php разработчиков?


    Нет.

    так как хочу стать таковым , то меня интересует какой веб сервер использовать ?


    Ставьте себе убунту. Ну или virtualbox + ubuntu. Ну или vagrant. Ну или docker но это уже для продвинутых. Последние две штуки как раз и придуманы что бы невилировать (или хотя бы уменьшить) различия между окружениями.
    Ответ написан
    Комментировать
  • Почему функция времени работает не верно в php?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    time выдает время в UTC

    The documentation should have this info. The function time() returns always timestamp that is timezone independent (=UTC).
    Ответ написан
    2 комментария
  • Можно ли использовать выборочно apache и ngnix?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    отдавайте все через nginx, повесьте apache на порт 8080 например (или вообще любой доступный) и запросы на конкретные сайты просто проксируйте на apache.
    Ответ написан
    Комментировать
  • Способы тестирования проекта, имитируя несколько тысяч пользователей?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    называется "нагрузочное тестирование".

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

    Затем мы берем несколько серваков и пуляем с них запросами на наш сервер. Ну или покупаем подписку к сервисам. Благо их много.
    Ответ написан
    Комментировать
  • Вопросы по быстродействию + Какую базу лучше всего использовать?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    все зависит от того что вы с этими данными делать будете. Если просто хранить - то выдержит конечно. Если делать сложные выборки - то зависит от нагрузки и количества запросов а так же расставили вы индексы или нет ну и все такое. Ну и для такой выборки памяти под индексы надо прилично и тюнить настройки mysql.

    Если вас интересует как ускорить запись - можно сначала загонять все в буфер (redis например) и потом пачками заносить все в базу.

    Если интересует как ускорить чтение - кеширование, индексы, агрегация штуками типа elasticsearch. Но опять же только если у вас есть проблемы с производительностью. Не занимайтесь преждевременной оптимизацией. Сначала напишите нагрузочные тесты и посмотрите насколько все плохо и надо ли что-то делать.
    Ответ написан
    1 комментарий
  • Как отправлять логи ошибок PHP на почту?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ответ написан
    Комментировать
  • XAMPP или чистый LAMP?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    3 комментария
  • Чем проверять изменения в каталоге или файле?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    SVN там вам и хранение diff-ов, и ревизии и все все все.
    Ответ написан
  • Какую ОС выбрать для VPS/VDS?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    если в первый раз настраиваете сервак - лучше debian или ubuntu, банально проще.
    Ответ написан
    Комментировать
  • Увидим ли мы C# на Linux?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    www.mono-project.com

    что вам еще надо? Чуваки из мелкософта туда активно контрибьютят, серсы пооткрывали (постепенно, это довольно длительный процесс учитывая масштабы продукта), vnext вон вроде обязались даже тестить под моно.
    Ответ написан
    Комментировать
  • Есть ли смысл изучать линукс фронтендеру?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ответ прост - нормальный терминал, ворох unix-оых утилит и bash. Конечно можно поставить на винду какой cygwin/mingw и радоваться, но все же это не то.
    Ответ написан
    15 комментариев
  • Как в Linux выполнить команду с параметром взятым из stdout предидущей команды?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    MY_MAC=$(tail -n2 | head -n1 | tr -s " " | tr -d \' | cut -f3 -d " ")
    etherwake -i br-lan "$MY_MAC"
    Ответ написан
    Комментировать
  • Почему MTU именно 1500?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Потому что так гласит стандарт IEEE802.3

    На самом деле все просто, при таком максимальном размере датаграммы она достаточно маленькая что бы время ее доставки было не критичным (особенно в случае потерь), но и достаточно большая что бы минимизировать оверхэд на канальном уровне.

    Предположим что мы хотим послать IP датаграмму в 1500 байт. Это мы еще находимся на третьем уровне модели OSI. Теперь идем на второй, запаковываем датаграмму в ethernet-фрейм, то есть добавляем еще 26 байт, итого имеем фрейм размером в 1526 байт. Так же между всеми фреймами есть еще 12-ти байтный зазор, что бы различать где кончается один фрейм и начинается другой. То есть на каждую датаграмму в 1500 байт мы передаем фрейм в 1538 байт.

    Давайте пока не будем отвлекаться на всякие Fast Ethernet и примим что скорость нашего Ethernet - 10mbps. Посчитаем сколько фреймов может передаваться в секунду:

    10 Mbps / 1538 байт = 812.74 фреймов / секунду.

    Имея количество фреймов в секунду мы можем прикинуть, при каком размере сколько будет идти наша датаграмма и какова будет полезная нагрузка на канал:

    812.74 * 1500 = 9 765 625 bps или ~9.7Mbps что есть ~97% заполнения канала. Логично что если повысить MTU то и полезная нагрузка будет больше, но тут стоит просто иметь в виду еще и потери пакетов и прочее. В этом плане маленькие пакеты лучше, в итоге приходим к компромису.

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

    Рекомендую почитать: en.wikipedia.org/wiki/Jumbo_frame
    Ответ написан
    2 комментария