• Что быстрее одна БД на много сайтов или отдельная БД под каждый сайт?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Работа каждой отдельной базы данных - определённый накладной расход, который сокращается при содержании всех баз в одном месте. Содержание на одном сервере 10 виртуалок с маленькими базами внутри - по ресурсам дороже, чем их содержание на одном сервере БД.

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

    Если все базы находятся на независимом оборудовании, то конечно же разделение будет производительнее.
    Ответ написан
    Комментировать
  • Tmp_table_size и tmpdir = /dev/shm?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Представьте, что tmp_table_size - это ваш RAM, а tmpdir - это ваш swap.
    Если в вашей операции участвует tmp-таблица, и её размер начинает выходить за пределы tmp_table_size, она переносится на диск, чтобы продолжать работать.

    Если у вас много неиспользуемой RAM, вы можете значительно увеличить tmp_table_size, причём не прибегая к /dev/shm, поскольку в нём не окажется никакого смысла.
    Только не забудьте пропорционально увеличить и max_heap_table_size, поскольку он распространяется и на tmp-таблицы, ведь до перехода на диск они работают на движке MEMORY.

    Если у вас в таблицах используются поля TEXT/BLOB, то tmp-таблицы, связанные с ними, всегда будут размещаться на диске. Если ваше приложение зависит от полей TEXT/BLOB и вам очень часто приходится сталкиваться с tmp-таблицами, то размещение на /dev/shm оправдано. В этом случае tmp_table_size можно оставить низким.
    Ответ написан
  • Повторное использование премиум шаблона вордпресс?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Не совсем нарушает, если быть точным. По хорошему, WordPress ведь идет с лицензией GPL, которая в свою очередь требует чтобы все, что использует WP также наследовало лицензию GPL, даже если вы берете деньги за свой продукт. А GPL сама по себе позволяет делать с продуктом что угодно.

    Но в реальности там черт ногу сломит. К примеру, есть бесплатный WP Sync DB. Ребята из Delicious Brains разработали платный плагин WP Migrate DB Pro, а потом кто-то его купил и выложил бесплатно. Потому что лицензия позволяет. Это конечно дико выбесило ребят из Delicious Brains (оно и понятно), но юридически им не удалось что-то сделать. К тому же, этот интересный человек внес в плагин некоторые изменения, и это уже стало деривативом. Вот такой казус.
    Ответ написан
    3 комментария
  • Верстка из PSD макета. Как правильно верстать?

    dom1n1k
    @dom1n1k
    Вообще говоря, в реальной работе дизайнер, конечно же, должен хотя бы на словах сообщать верстальщику, как и что должно тянуться. На практике, правда, бывает так, что дизайнер уже недоступен и спрашивать некого, но это неправильно.
    Но с другой стороны, я понимаю автора тестового задания, который бросил соискателя в такую вот ситуацию. Он хотел проверить, умеет ли тот чувствовать и осознавать "логику макета". Оказалось, что пока нет. Сейчас большинство верстальщиков-неофитов помешаны на инструментах (bootstrap, gulp, autoprefixer и еще 20 подобных слов), слабо разбираясь в верстке как предметной области.
    Ответ написан
    Комментировать
  • Как настроить цели яндекс.метрики на нажатие кнопки "Подтвердить заказ" (WooCommerce)?

    Punkie
    @Punkie
    Проще повесить цель на попадание по странице "order-received":
    e234a5123a4b44119839d88e666a6ab7.png

    Или пример с javascript:
    37bfeb5f82dd4499a2177cdd80c76a04.png
    Ответ написан
    21 комментарий
  • Как не распыляясь дотащить до front-end мидл девелопера?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    1.
    так и продвижение по карьерной лестнице

    Воспользуйтесь "профайлером". Другими словами Вашим руководителем. Всегда держите руку на пульсе. Если у Вас принято брать задачи из баг-трекера, то можно в довесок договориться с руководителем о следующей практике:
    "Прошу Вас еженедельно говорить мне одну штуку из числа прошедших за неделю из-за которой Вы бы уволили меня и еще одну штуку из числа прошедших за неделю за которую Вы бы выписали премию". Ответы записывать, отсматривать после каждой новой обратной связи от руководителя и вы будете в тренде, что надо по факту, что нахрен не надо делать! При этом будете в курсе: нужны ли коллективу или вот вот пинут? То есть всегда будете знать насколько Вы реально нужны.

    2.
    Имея факты на руках о реальной необходимости команде и того что ожидает руководитель и тех задачах в багтрекере можно поставить другой вопрос команде: "Какую боль чаще всего испытываем, но все как-то руки не дойдут?" и решая его будете нужны команде

    1 и 2 дают знания и карьеру
    Ответ написан
    Комментировать
  • Как настроить backup VDS на Яндекс.Диск?

    @mureevms
    Предисловие.
    Вы должны смонтировать Ядиск как описано в этой статье в каталог /mnt/yadisk, туда будут копироваться все бэкапы
    Для бэкапа всей системы лучше пользоваться инструментами которые предлагает хостер. Если таких нет или планируется переезд всей системы, то используйте п.1.
    Специально оставляю одну копию каждого бэкапа на VDS для удобства восстановления какого-либо файла.
    Прокомментирую только первый файл, остальные сделаны по подобию.
    Каталоги в /home/backup/... и /mnt/yadisk/... должны быть созданы.
    Скрипт бэкапа разбит на 4 штуки намеренно для удобства использования и запуска по крону с разными временными интервалами, что и надо будет сделать отдельно.
    Так же, советую предварительно перед бэкапом проверять смонтирован ли Ядиск, иначе место может внезапно закончится на сервере. Если интересно, то потом дам ссылку как это сделать.

    Бэкап

    1. Бэкап системы осуществляется при помощи команды tar
    Файл system_backup.sh:
    #!/bin/sh
    TIME=`date +%Y-%m-%d`
    # Что бэкапить
    WHAT=/
    # Куда класть бэкап
    WHERE=/home/backup/system
    # Куда копировать бэкап
    COPY=/mnt/yadisk/system
    # Бэкап системы. Файл бэкапа исключает системные каталоги и каталоги куда кладутся сами бэкапы
    tar -cpzf $WHERE/$TIME.tgz --exclude=/dev --exclude=/proc --exclude=/lost+found --exclude=/home/backup --exclude=/mnt /
    # Скопировать на файл бэкапа на Ядиск 
    cp $WHERE/$TIME.tgz $COPY
    ### Удалить старые файлы бэкапов
    # Оставить на VDS только последний
    find $WHERE -mtime +1 -print -delete
    # Удалить с Ядиска бэкапы месячной давности
    find $COPY -mtime +30 -print -delete


    2. Бэкап конфигов осуществляется так же при помощи команды tar (при текущих исходных данных все конфиги лежат в /etc)
    Файл etc_backup.sh:
    #!/bin/sh
    TIME=`date +%Y-%m-%d-%H:%M`
    WHAT=/etc
    WHERE=/home/backup/etc
    COPY=/mnt/yadisk/etc
    tar -cpzf $WHERE/$TIME.tgz $WHAT
    cp $WHERE/$TIME.tgz $COPY
    find $WHERE -mtime +1 -print -delete
    find $COPY -mtime +30 -print -delete


    3. Бэкап сайтов осуществляется аналогично (предполагаю, что они лежат в /var/www/)
    Файл www_backup.sh:
    #!/bin/sh
    TIME=`date +%Y-%m-%d-%H:%M`
    WHAT=/var/www
    WHERE=/home/backup/www
    COPY=/mnt/yadisk/www
    tar -cpzf $WHERE/$TIME.tgz $WHAT
    cp $WHERE/$TIME.tgz $COPY
    find $WHERE -mtime +1 -print -delete
    find $COPY -mtime +30 -print -delete


    4. Бэкап MySQL осуществляется при помощи команды mysqldump
    Файл mysql_backup.sh
    #!/bin/sh
    TIME=`date +%Y-%m-%d`
    # Логин пользователя мускула
    USER=root
    # Пароль пользователя мускула
    PASS=root_password
    WHERE=/home/backup/mysql
    COPY=/mnt/yadisk/mysql
    ### Базы которые надо бэкапить
    for base in base_name1 base_name2
    do
    # Сделать дамп баз
    mysqldump -u$USER -p$PASS -B $base > $WHERE/$base-$TIME.sql
    done
    cp $WHERE/$base-$TIME.sql $COPY
    find $WHERE -mtime +1 -print -delete
    find $COPY -mtime +30 -print -delete


    Восстановление

    Восстановление сайтов и конфигов осуществляется простым копированием в место назначения.
    Восстановление баз:
    mysql -u root -p root_password -f base_name1 < /home/backup/mysql/base_name1.sql
    mysql -u root -p root_password -f base_name2 < /home/backup/mysql/base_name2.sql


    Восстановление системы более сложный процесс, но суть сводится к одному - сделать чистую установку аналогичной ОС, загрузится с LIVE CD, подмонтировать Ядиск и распаковать архив в root директорию (root директорией называют корень файловой системы - / ), за исключением каталога /boot
    ОБЯЗАТЕЛЬНО заранее проделать восстановление на отдельной виртуалке.

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