• Как с помощью sysctl получить статистику по сетевому интерфейсу (/proc/net/dev)?

    @iamFake Автор вопроса
    В общем я не нашел способа реализовать это через sysctl (или не нашел соответствующей документации), но с подсказкой требуемое все таки смог реализовать. Все решается через функцию getifaddrs которая возвращает интерфейсы в системе выдавая отдельно AF_INET и AF_PACKET семейки на каждый реальный интерфейс. Запись с типом AF_PACKET как раз таки и содержит байты и пакеты, переданные и полученные.

    man7.org/linux/man-pages/man3/getifaddrs.3.html
    Ответ написан
    Комментировать
  • Postgresql 9.5 долго запускается после сбоя, что не так?

    @iamFake Автор вопроса
    Похоже это был баг в 9.5.3. Его пофиксили в 9.5.4, в changelog есть запись про слишком долгое ожидание WAL данных от sender\reciver.
    Ответ написан
    Комментировать
  • Что важнее: SSD или ОП?

    @iamFake
    Вообще, с точки зрения логики, прежде чем принимать какое либо решение - необходимо проанализировать что привело к дилемме... Чем именно занято 95% оперативки? Чем именно занимается HDD что его загрузка почти все время 100%? Что за программа пишет данные и зачем? Ответив на предыдущие вопросы останется последний - что из этого РЕАЛЬНО необходимо? (А то вдруг вирусня какая производит расчет белковых цепочек или майнит биткоины). И только после этого, уже можно понять в чем проблема и выбрать решение, иначе легко можно решить проблему которой не было и тормоза останутся, а денег уже не будет.
    Ответ написан
    Комментировать
  • Почему на хостинге запись всего лишь 1 значения (Timestamp) в БД MySQL работает быстрее, чем в файл, хотя у меня на компе быстрее файл?

    @iamFake
    Вы рассматриваете вопрос записи данных на диск слишком узко.

    Запись одного значения в файл не будет особо отличаться от записи одного значения в таблицу приведённую вами в пример. Да, субд имеют свой оверхед, но современные субд очень сильно оптимизированы и в данном случае разница значительной не будет.

    Но, эту разницу могут делать значительной иные факторы... Например вы вызвали file_put_contents, которая обратилась к вашей ФС и сказала (образно говоря разумеется :) ) "запиши это вот сюда" и ФС ответила "ОК", file_put_contents вернула успех и пхп продолжил выполнение кода.

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

    Что касается вопроса про хостера, причин тоже может быть не мало... База может находится на SSD диске или RAID массиве (0 или 01 например)... Может быть разница в приоритете работы с диском (ionice) и прочие административные ограничения хостера, дабы клиент не "положил" сервак бешенным IO к диску.

    Да, у хостеров БД часто на другом сервере находится. Таким образом оборудование чётко разделяется на зоны применения и каждая зона настраивается максимально под узкие задачи, что приводит к значительному упрощению администрирования и приличному росту производительности. А так же росту оверхеда если общение через TCP протокол.
    Ответ написан
    5 комментариев
  • Стоит ли слишком сильно волноваться за безопасность сайта, если все денежные операции будут выполняться на стороне (страничка банка, paypal и др.)?

    @iamFake
    Можно, если стоимость работ профессионального программиста/команды будет выше репутационных и иных рисков в случае каких либо проблем.

    Возможно у меня суждение предвзятое (я программист и штамповка сайтов на опенсурсовых цмс меня не привлекает и отнимает у меня клиентов ввиду демпинга цен), но серьёзный проект на опенсурсной цмс это изначально "минус в репутацию" проекта.

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

    Естественно все выше сказанное подразумевает профессиональных исполнителей. Людей которые живут внутри своей профессии. К не профессиональной команде\исполнителю выше сказанное никак не относится.

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

    Это 2 стороны одной медали со множеством переменных с обеих сторон. Выбор нужно делать исходя из планирования и оценки рисков(как юридических так и финансовых), но никак не из желания экономить.
    Ответ написан
  • Может ли переход по ссылке из поиска спровоцировать ошибку 413?

    @iamFake Автор вопроса
    В общем ситуация была следующая - у nginx был настроен буфер для хедеров от клиента в 2кб и время от времени на сайт переходили клиенты у которых в куках было больше 2кб (по общемировой практике и вроде как по стандарту может быть до 4кб) вот от сюда и выпадывала 413 ошибка.
    Ответ написан
    Комментировать
  • Как для каждого сайта назначить свой PHP.INI или изменить его параметры через NGINX?

    @iamFake
    в конфиге php-fpm для конкретного хоста пишем:

    php_admin_value[mbstring.func_overload] = 2
    php_admin_value[mbstring.internal_encoding] = UTF-8

    в итоге получится что-то вроде:
    [some-host.tld]
    listen = ...
    ...
    php_admin_value[mbstring.func_overload] = 2
    php_admin_value[mbstring.internal_encoding] = UTF-8
    Ответ написан
    Комментировать
  • Нужно ли закрывать внутрисайтовый поиск от индексации?

    @iamFake Автор вопроса
    спасибо
    Ответ написан
    Комментировать