• Каковы распространенные ошибки при высокой нагрузке и многопоточности?

    grumblik
    @grumblik
    В меру любопытен и разумно пытлив
    Читай что такое Select for update
    Замечательная конструкция только по моему поддерживают не все BD
    Ответ написан
    Комментировать
  • Как узнатьсколько строк вернул запрос?

    grumblik
    @grumblik
    В меру любопытен и разумно пытлив
    Тут два пути. Первый получить с помощью SQL запроса - точно верный метод.
    И получить с помощью подсчёта строк полученных из запроса - не всегда верный метод(только при маленьком наборе данных).

    Сейчас объясню почему:
    Представьте, что у вас таблица на 100 000 000 000 строк.
    Вы делаете запрос и получаете в результате 10 000 000 000 строк.
    Допустим все эти строки вам нужны в программе (пользователь в форме на сайте глюканул и запросил все данные за последние 10 лет). Но вы сначала проверяете с помощью count(*) сколько вернулось строк.

    Очевидные плюсы - ваша программа не вылетит потому, что вы получаете всего одно значение, а не 10 000 000 000(И соответственно можете не допустить выгрузки такого большого количества данных которые подвесят вашу систему - что то типа if result > 10 000 then return "Слишком много данных"). Во вторых анализатор SQL вполне возможно обойдётся внутренней статистикой, а не проходом по индексам (или если совсем не повезёт фул тейбл сканом, что даже на миллионой таблице может сильно затормозить). В любом случае при использовании count мы не наблюдаем падения производительности, а в хорошем случае наблюдаем её прирост.

    А теперь представим, что вам нужно сделать отчет, вы знаете SQL запрос который вернёт нужные значения, но вы не знаете сколько строк он вернёт. RAM на вашей машине ограничен. Есть вариант, что программа сожрёт всю доступную память и уйдёт в своп(или упадёт если она 32'ух битная и приложению максимум выделяется 1,5 Гб) если заранее не проверить сколько данных мы запихнём в программу. Поэтому нужно перед выгрузкой данных проверить сколько у нас получится этих данных.

    По этому самый лучший вариант сначала "SELECT COUNT(*) FROM chel", а потом уже "SELECT <какие-то_столбцы> FROM chel".
    Это будет правильно. Ну и старайтесь избегать подзапросов там где без них можно обойтись.

    PS это облегчит жизнь и вам и DBA которые будут сопровождать вашу БД.
    С уважением админ как раз одной такой большой БД у которого программисты периодически пишут косячный SQL
    Ответ написан
    2 комментария
  • Как поместить многострочный текст в атрибут chef? Или как прочитать текст шефом из файла?

    grumblik
    @grumblik
    В меру любопытен и разумно пытлив
    Ну вообще-то есть теплейты, куда можно запихнуть файл, конфиг и всё что душе угодно.
    Если кукбук ничего не будет делать с ключем(а я уверен не будете) кроме как положить его в нужное место, то темплейт - то что авторы прописали.
    Ответ написан
  • С чего начать обучение в области HiLoad, кластеризации, масштабируемости и т.д.?

    grumblik
    @grumblik
    В меру любопытен и разумно пытлив
    ruhighload.com
    Начни читать это.
    В нагруженных системах как в сексе, главное - пробовать много и по разному ;)
    Потом поймёшь, что тебе удобно и нравиться.
    Ответ написан
    Комментировать
  • Не работает https на apache (OS Freebsd9.2), сертификат Comodo PositiveSSL. В чем может быть проблема?

    grumblik
    @grumblik
    В меру любопытен и разумно пытлив
    Пробросить порт на роутере
    Ответ написан
    Комментировать
  • Можно ли подружить DIR-320(A1) c Debian?

    grumblik
    @grumblik
    В меру любопытен и разумно пытлив
    OpenWRT
    DDWRT
    и прочее с буквами WRT гугли, на DIR-320 можно поставить линукс, сильно урезанный, но на нём можно сервисы поднять. Вопрос лишь - хватит ли вам памяти. Я не помню есть ли на нём USB разьём, если есть тогда всё проще.
    Ответ написан
    Комментировать
  • Не работает .htaccess в Ubuntu, почему?

    grumblik
    @grumblik
    В меру любопытен и разумно пытлив
    sudo chown -R www-data:www-data /var/www/html
    sudo chmod u+x /var/www/html/default.php
    Ответ написан
  • Где производится изменение региональныых настроек консоли Linux?

    grumblik
    @grumblik
    В меру любопытен и разумно пытлив
    # locale
    # locale -a покажет все доступные локали
    ну и собственно меняйте нужные переменные в bashrc вашего пользователя (ну или какой у вас shell)

    Если есть вопросы, пиши в комментарии, отвечу.
    Ответ написан
    Комментировать
  • Как проксировать https без подмены сертификата?

    grumblik
    @grumblik
    В меру любопытен и разумно пытлив
    У вас прокси для внутренних пользователей которые смотрят наружу или вы хотите поставить какой-то балансировщик для доступа к своему сайту извне?

    В первом варианте никак(или мне не известны методы). Если только не прозрачный режим.
    Во втором варианте на прокси нужно установить сертификат сервера, тогда он сможет расшифровывать и зашифровывать трафик прозрачно.
    Ответ написан
  • Как найти проблему в звонке через DAHDI?

    grumblik
    @grumblik
    В меру любопытен и разумно пытлив
    Вставь перед переходом на SIP выполнение скрипта
    а в самом скрипте впиши:
    /usr/sbin/asterisk -r -x "core show channels" | grep DAHDI >> /var/log/asterisk/dahdi-chanell.log

    И потом с помощью tail -f /var/log/asterisk/dahdi-chanell.log
    смотри что туда пишется, увидишь статусы канала.

    А вообще можешь вписать ещё
    same => n , ChanIsAvail(DAHDI/g1&SIP/TR)
    same => n , NoOp(Доступный канал ${AVAILCHAN})

    Перед первым звонком (заодно узнаешь про замечательную конструкцию same с помощью которой можно не повторять лишний раз экстен)
    Ответ написан
    Комментировать
  • Как настроить ssl backend в haproxy?

    grumblik
    @grumblik
    В меру любопытен и разумно пытлив
    Сертификат придётся положить на сервер HAP и прописать его в настройках
    Вот инструкция подходящая под вопрос.
    https://serversforhackers.com/using-ssl-certificat...

    Если будут трудности с переводом или ещё с чем - пиши.
    Ответ написан
    6 комментариев
  • Хочу поднять debian сервер для разработки. Как?

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

    Хотя всё зависит от того, что хочешь:
    Хочешь не понимать как там внутри работает. Берёшь предустановленное и оно всегда работает.
    Хочешь понимать, делаешь всё сам, экспериментируешь с настройками, ловишь косяки, учишься их исправлять.

    Опыт в обоих вариантах получаешь, но во втором варианте гораздо шире.

    Если выберешь первый вариант, то советую познакомиться с Chef, тогда будет совсем просто в итоге.
    Ответ написан
    Комментировать
  • Почему Mysql кушает оперативку?

    grumblik
    @grumblik
    В меру любопытен и разумно пытлив
    Нормальное состояние, что mysql кушает оперативу. Не нужно складывать потребляемые мегабайты - это разделяемая память(ну или как-то так зовётся).
    В общем если показано 602 метра выделено, это значит, что для всех потоков, а не для каждого в отдельности.
    При этом нужно различать выделенную, зарезервированую, используемую память.
    sudo apt-get install mysqltop
    sudo mysqltop
    Ответ написан
    1 комментарий
  • Какие порты пробросить для сервера телефонии MyPBX U100?

    grumblik
    @grumblik
    В меру любопытен и разумно пытлив
    На сервере телефонии если стоит unix то в консоли сделай (возможно понадобится установить tcpdump - попробуй yum install tcpdump или apt-get install tcpdump):

    # sudo tcpdump -n -vv host
    или
    # sudo tcpdump -n -vv port 5060

    Бегают ли пакеты?

    Есть два варианта:
    1 пакеты не доходят - проблема сети
    2 пакеты проходят туда и обратно - проблема авторизации (неверный логин пароль, тип авторизации и т.п.)
    Ответ написан
    Комментировать
  • Как правильно использовать https?

    grumblik
    @grumblik
    В меру любопытен и разумно пытлив
    Иван Украинцев: вопрос ещё актуален?
    Статус у вопроса "не решён".

    Может требуется ещё какая помощь или совет?

    Кстати я бы рекомендовал внимательно прочитать про разницу между 301 и 302 редирект. Мало ли.
    Особенно про вечность 301 редиректа.
    Ответ написан
    Комментировать
  • Удаление всех пакетов, в имени которых есть xfce. How?

    grumblik
    @grumblik
    В меру любопытен и разумно пытлив
    sudo apt-get remove `dpkg -l | grep xfce | grep ^ii | awk '{print $2}'`
    dpkg -l - список всех пакетов
    grep xfce | grep ^ii - выбираем строки где есть "xfce" и которые начинаются с "ii"
    awk '{print $2}' - вычленяем только второй столбец (символ разделения пробел или табуляция)
    ну и собственно с помощью ` ` скармливаем этот список apt-get remove

    после этого можно ещё sudo apt-get autoremove запустить, подчистить ненужные установленные зависимости
    Ответ написан
    7 комментариев