Задать вопрос
  • Как запустить/дебажить приложение из IDEA в вируталке?

    @MamOn
    Вам непонятно как запускать или как производить отладку приложения на другом хосте? С первым я не думаю что должны были возникнуть проблемы, а вот чтобы запустить приложение в режиме отладки по сети нужно указать следующие параметры при запуске jvm:
    java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar ваша_программа.jar

    И далее в IDEA настраиваете "Remote" профиль запуска отладки на подключение через сеть на 5005 порт удалённого хоста. Например как здесь, только указываете правильный Host вашей виртуалки:
    EyBec.png
    (картинка спёрта с первой попавшейся инструкции в интернете)
    Ответ написан
    1 комментарий
  • Какую утилиту лучше использовать для реорганизации таблиц PostgreSQL (например: pg_repack vs pgcompactor vs подстройка автовакума)?

    Melkij
    @Melkij
    PostgreSQL DBA
    pg_repack - это community extension, форк более раннего pg_reorg. И не отрицая вклад участников pgpro в разработку postgresql в целом - я не вижу их среди контрибьютеров pg_repack.

    Мы активно используем обе. Основные моменты касательно pg_repack vs pgcompacttable в общем-то именно я и изложил в README компактора. Если говорить на русском:
    - pg_repack делает копию таблицы, т.е. требуется двукратный запас диска. Компактор работает в рамках одной таблицы и требует место только под копию наиболее толстого индекса и то, толстые индексы обрабатываются самыми последними. Т.е. расчёт на работу когда места уже мало.
    - компактор намеренно выполняется медленно чтобы не задевать работающий проект
    - компактор не может обрабатывать toast таблицы. Репак - может.
    - pg_repack характеризуется очень заметными пиками io и wal. Вся таблица едет одной транзакцией и это никак не регулируется. Поэтому может аффектить прод на неважных дисках и в том числе оторвать реплики при недостатке сетевой полосы.
    - pg_repack умеет перемещать между tablespace и может делать команду cluster

    (или лучше подстроить автовакум)?

    Конечно необходимо настроить автовакуум и не мешать ему работать - т.е. исключить долгие транзакции. Но всё равно бывают хитрые моменты, когда репак или компактор бывают нужны.
    Ответ написан
    2 комментария
  • Как ограничить tmpfs чтобы не съедал 126Gb?

    @pfg21
    ex-турист
    он не съедает :) это просто размер раздела (максимально впихуемое место).
    если на tmpfs занято пару мегабайт, то он и займет в ram это место + небольшое место под структуры управления.

    а так опции монтирования size:
    The limit of allocated bytes for this tmpfs instance. The
    default is half of your physical RAM without swap. If you
    oversize your tmpfs instances the machine will deadlock
    since the OOM handler will not be able to free that memory.

    https://www.kernel.org/doc/Documentation/filesyste...
    Ответ написан
    5 комментариев
  • Какое выбрать кресло для программиста?

    @vism
    Лучшее кресло из экономов - это Маркус из Икеи.
    Из среднего сегмета 25-50 Profim понравились
    Из догорого - окамура контесса.

    Бюрократы - это смерть жопке и спине. китайские поделки собираемые в россии
    Ответ написан
    4 комментария
  • Что будет если закончится срок поддержки Ubuntu?

    slo_nik
    @slo_nik
    Доброе утро.

    Или можно как то обновиться до новой версии без потери данных ?

    Можно.
    Ставите новую версию начисто, но при этом не форматируете раздел "home".
    Данные и некоторые настройки программ сохранятся. Нужно будет только установить эти программы снова.
    Ответ написан
    Комментировать
  • Счего начать изучение DevOps?

    neatsoft
    @neatsoft
    Life is too short for bad software
    Базис:
    The Twelve-Factor App (перевод)

    Список необходимых инструментов и технологий:
    DevOps Roadmap
    Ответ написан
  • Почему часто сталкиваюсь с перегоранием при обучении?

    riky
    @riky
    Laravel
    бывает такое. От части это прокрастинация, от части просто расширение кругозора. Чего-то хочется, а что конкретно непонятно.
    В небольших количествах это даже полезно, это как сьездить в другую страну посмотреть как они там живут и вернуться домой. Не обязательно же каждый раз переезжать насовсем. Если вас устраивает тот язык на котором сейчас пишете - то все ок, а других изучать хотя бы поверхностно тоже не помешает, нужно собирать лучшее отовсюду. Имхо, если вы выделяете недельку другую, раз в два месяца на новые языки - то ничего страшного, это даже полезно, развитие компетентности. Если бы вы были зеленым новичком, то да, это было бы странно и не продуктивно.

    А вообще прежде чем изучать нужно стараться ставить практическую цель, придумывать какой то проект, Который и делать по мере изучения. Без практики знания не получаются, это просто информация которая со временем забывается.

    Удачи.
    Ответ написан
  • Почему часто сталкиваюсь с перегоранием при обучении?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    У меня такое когда не вижу цели, а просто изучаю новое "для массы". Так получается лишнее, но со временем оно утрясается. Сейчас вот прокрастинирую очередной раз перед добиванием курсов по AWS - слишком много теории и мало практики.

    Это проходит, Главное найти мотиватор и отбросить мешающие факторы
    Ответ написан
    3 комментария
  • Сколько нужно времени чтобы научиться программировать?

    @Alibaba2018
    Смогу ли я самостоятельно изучить программирование до такого уровня чтобы устроиться на работу?(книги, видео уроки, гугл)
    Да (Я сам такой же. Изучаю программирование уже года 2.5 (последний год конкретно, до этого так), но так и программировать качественно сам до сих пор не умею, т.е. именно писать свой source code, кот. был бы приемлем на профессиональном уровне, хотя и изучал и Swift, и Java, и даже C++, и Python. Копировать чужие программки и код - это не программирование, a обучение и дрочилка.
    Сколько времени это займет?
    В зависимости от сферы в какой хотите работать
    (Для клЕпания сайтов - front end: недолго, для создания своих AI движков: очень долго)
    Я лично, например, решил сконцентрироваться сейчас только на Python. По сути, если научиться капитально программировать (опять же, именно программировать(!), то после любой язык прогрраммирования (а для начальных прогеров синтакс) дается очень легко, т.к. понимаешь а) структурирование, б) архитектуру решения задач и в) собственно построение этого решения.
    Я начинал с изучения со Swift'а для создания приложений на Iphone. С одной стороны рад, что начал с более сложного языка (а Swift - это intermediate язык по сложности), с другой нет, т.к. это было не программирование, а попытка копипастить откуда можно, чтобы что то работало, т.е. попытка сшить из носовых платков штаны, собственно, по сравнению с брюками нормальными от пиджака, также получались разноцветные шаровары, да еще и на соплях, да еще и если получались..
    С чего лучше начать?
    Начните с языка Python, самый легкий. Если есть английский:
    1. "Learn to Program with Python" by Irv Kalb
    2. www.udemy.com курсы Jose Podilla - рекомендую почти все
    3. найдите сайт фоксфорд с лекциями по подготовке к ЕГЭ Тимофея Хирьянова, а потом для закрепления пройдите и все его курсы для 1 курса МФТИ (все есть на youtube)

    Обязательно ли идти в универ?
    Нет. По сути, если взяться конкретно за это (т.е. заниматься с 8 утра до 8 вечера, 6 дней в неделю, где то полгода-год), то можно закончить всю университетскую программу самому. Если еще есть хороший наставник, кот. подсказывает то за полгода точно можно даже хакером стать. Я все учил сам, что значительно и увеличило время изучения, так как иногда приходилось делать круги.
    20 лет не поздно?
    Да хоть в 60, если мозги работают. Самое главное желание.

    PS От Себя.
    По сути, программирование - это 3 этапа
    а) структурирование, т.е. разбивка задачи на транзакции, для чего нужна логика, усидчивость и немного мозгов, т.е. само программирование здесь почти нулевое (больше нужно даже problem solving skills, но это уже отдельных навык, связанный с след. пунктом)
    б) перевод затем всего этого структурирования в математический язык и алгоритмы,
    т.е. знание алгоритмов, структур данных, паттернов итд итп всяких intermediate и advanced программных штук - что начинающий поймет после изучения базового синтаксиса, а также что не мало важно хороший уровень математики (матан, дискретка, линейная алгебра - 3 в особенности, ну и далее статистика, итд итп, т.е. по специализации)
    c) и затем перевод это все в синтаксис, язык программирования, что со знанием базы уже становится очень просто

    PPS проблема что пункт б) практически нигде не отмечают, особенно в курсах для начинающих, и в основном преподают тоже качественно учителя в ВУЗах, т.е. люди, кот. реально умеют программировать и писали, код, а не те, кто выучил синтаксис, а реальной практикой на профессиональном уровне никогда не занимались в своем большинстве
    Ответ написан
    Комментировать
  • Как выбрать вычислительные ресурсы для узлов кластера с горизонтальным масштабированием?

    @evgeniykhist Автор вопроса
    Java Solution Architect
    Ответ связан с такими метриками производительности, как latency и throughput.
    Latency - временной интервал между отправкой запроса и получением ответа.
    Throughput - скорость обработки запросов (requests per second).
    Latency влияет на throughput. Больше latency - меньше throughput.
    Если бизнес транзакция состоит из последовательных вызовов нескольких сервисов, которые не могут быть распараллеленны, тогда вычислительные ресурсы для узлов кластера должны вибираться таким образом, чтобы достичь требуемого latency, так как добавление дополнительных экземпляров сервисов (горизонтальное масштабирование) не будет иметь влияния на latency.
    Добавление дополнительных экземпляров сервиса увеличивает throughput (при условии отсутствия bottleneck-ов).
    То есть, выбирайте CPU и RAM таким образом, чтобы время ответа сервиса было оптимальным, а для обработки большего количества запросов одновременно, добавляйте новые экземпляры сервиса.
    Ответ написан
    Комментировать
  • Как настроить nginx под 800 запросов в секунду?

    Так, во первых у тебя сколько ядер на машине? Почему кластеров 10, а nginx воркер процессов 2(оба значения должны быть раны количеству ядер)? Во вторых вместо ПМ 2 можно использовать upstream в нигсе. В него же можно подсунуть другие серваки если этот не справляется. 800 подключений это не много, но уже требует кэширования, так что надо в нигсе в upstream, proxy и выдачу прописать кэширование. Ну и смотреть код курить логи с манами. Удачи.
    Ответ написан
    Комментировать
  • Как остановить ddos со своего сервера?

    https://forum.vestacp.com/viewtopic.php?f=10&t=16556
    https://forum.vestacp.com/viewtopic.php?f=10&t=16558
    https://forum.vestacp.com/viewtopic.php?f=28&t=16555
    VestaCP скомпроментирована. Причина в ней.
    Народ указывает на /etc/cron.hourly/gcc.sh (XOR.DDoS) как вредоносную нагрузку.
    Ответ написан
    1 комментарий
  • Поздний старт в ИТ - есть ли шансы?

    @SanDiego8
    Мой батя пошел на врача в 25, а учится там 7 лет ! В 32 он только закончил учебу!
    Мой дед еще при советском союзе закончил высшую партийную школу в 43 года ! (там учился 5 лет!) После чего его направили на работу в совершенно незнакомую ему сферу деятельности. Начинать новое НИКОГДА не поздно !

    Я институт бросил на 3 курсе. Открыл предпринимателя, занимался ремонтом и продажей ПК, был свой прокат дисков DVD, потом было свое кадровое агентство, магазин непродовольственных товаров, потом пошел на работу на завод, потом устроился администратором в спортзал, где повысили до управляющего спорткомплексом, сам проводил много собеседований.

    В 30 лет бросил должность управляющего спорткомплексом и начал работу над собственным интернет магазином. Сейчас изучаю совершенно новое для меня направление - разработку сайтов. Самообучение у меня не заканчивалось никогда ! И вам того же рекомендую.

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

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

    @Gansterito
    Классиков Вам уже посоветовали, а вот запустить Wireshark на компьютере и своими глазами заглянуть внутрь IP-пакетов еще не успели.
    Думаю, это самый удобный способ: далеко ходить не надо (есть "интернет", значит есть обмен данными по сети), виден весь IP-стек, все прокомментировано (кратко, но достаточно для понимания). Рекомендую!
    Ответ написан
    Комментировать
  • Как лучше учить английский?

    Hi, can I tell you what the answer is, man...
    Учить надо также как и все дети учат - они слушают 3 года других, и потом начинают говорить, не уча никаких правил. Можете просто смотреть свои фильмы на английском языке, слушать, но с сдвоенными субтитрами на английском вверху и русском внизу или наоборот, для того - чтобы видеть грамматику и понимать перевод (подсказки), ставя на паузу и читая:
    5a351e730b5f0758466082.jpeg
    lelang.ru/english/druzya-10-sezon-1-seriya

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

    по грамматике не забывайте что всегда надо говорить везде артикли. Не забывайте про глаголы - они должны быть абсолютно в каждом предложении, это прагматический язык. Ну и не путайте времена - их 12 а не просто 3.

    самое главное научиться правильно задавать вопросы, они задаются не просто завышая тон в конце предложения делая своеобразный звуковой "хвостик", а делается это вынося вспомогательный глагол в начало предложения, например: Do you? - это вопрос. А You do - это утверждение. Задавать вопросы уметь самое важное, потому что вы сможете ими чтото спросить. А утверждая вы ответов не добьётесь, никак.

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

    Так вы быстро научитесь.
    Ответ написан
    Комментировать
  • ДДос атака на nginx пакетами 1 байт?

    @younghacker
    Главная проблема в том что Ваш адрес уже засвечен и чтобы уйти под CDN нужно сразу сменить IP для бэкэнда, а старый, владельцу атономки, лучше отправить в blackhole.

    Если канал не забит (ssh нормально отвечает) пробуйте блокировать прямо в iptables регионами.
    А если nginx успевает отвечать таймаутом бэкэнда (узкое место движок сайта) - то можно блокировать в nginx.

    Первый шаг - хостер / датацентр. Спросите чем могут помочь, им по сути тоже нет резона держать хост под атакой.

    Затем вытяните из логов все запросы за время атаки отсортируйте по количеству и составьте список 100-300 самых активных и вычислите их сети автономки и регион. Если это одна страна и она не ваша целевая - блокируйте на время всю страну автономки и так далее. Для начала можете заблокировать просто около 300 конкретных хостов.
    Если сайт начнёт работать, контролируйте что происходит дальше. Атака может смещаться на другие IP.

    Если это не поможет переходите под защиту CDN с защитой от DoS.
    Сразу после этого меняйте IP так как этот уже спален.
    Кроме этого пропишите в iptables правила которые режут трафик отовсюду за исключением сетей CDN.
    Не отрежьте случайно свой ssh.

    CloudFlare имеет бесплатный вариант эккаунта. Но отмечу что нам заваливали 3 сайта которые находились на платном эккаунте. Атака велась из Вьетнама Кореи, Бразилии и Украины. Пытались блокировать по сетям прямо в CDN, но пакеты из заблокированных сетей всё равно долетали до наших серверов где мы их уже блокировали.

    По остальному смотрите что с бэкэнтом который готовит страници для nginx. Что с количеством процессов как они загружены сколько потребляют памяти и чего ждут. Атака это хороший случай чтобы над тем где бутылочное горло.
    Ответ написан
    Комментировать
  • ДДос атака на nginx пакетами 1 байт?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    500 строк в секунду - это не мощно и, вероятно, даже не DDoS. Если адрес один, то просто закройте ему доступ брандмауэром, а если адреса разные, то настройте лимит запросов в Nginx.

    nginx.conf
    http {
        ...
        limit_req_zone $binary_remote_addr zone=reqlimit:10m rate=30r/s;
        ...
    }

    some_site.conf
    server {
        ...
        location / {
            ...
            limit_req zone=reqlimit burst=10 nodelay;
        }
    }

    После этого запросы с одного ip-адреса начиная с 31-го в секунду будут отбрасываться.

    Как вишенку на торт, можно добавить ещё фильтр для fail2ban:

    nginx-req-limit.conf
    [Definition]
    
    failregex = limiting requests, excess: .* by zone .*, client: <HOST>
    ignoreregex =

    и правило в jail.local
    [nginx-req-limit]
    enabled = true
    port = http,https
    filter = nginx-req-limit
    logpath = /var/www/*/*/logs/error.log # Здесь укажите свой путь к логам виртуального хоста
    findtime = 600
    maxretry = 10
    bantime = 7200

    После этого адреса DoS'еров будут автоматически блокироваться брандмауэром на два часа. Что разгрузит Nginx от обработки паразитного трафика.
    Ответ написан
    11 комментариев
  • Как мониторить определенные сервисы на нескольких линукс машинах?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    prometheus + blackbox_exporter + grafana
    Ответ написан
    Комментировать
  • Сколько времени в среднем проходит для освоения программирования с нуля и возможностью заработка?

    @biomagic
    Это должно быть стремление, страсть, талант. Если бы у вас это было, вы бы вопросы здесь не задавали, а просто программировали.


    Красивый, распространенный и вероятно ошибочный миф. Реальность не так однозначна как хотелось бы порой идеалистическим натурам в той или иной сфере деятельности. Знаю случаи когда изучение программированию было вынужденным, так сложились обстоятельства, потом изучение перерастало в постоянную работу и получались из людей приличные программисты. Заколачивать деньги тоже хороший мотив, просто не всем хватает этой мотивации чтобы скрупулезно потратить 2-3 года для достижения результатов.
    Ответ написан
    1 комментарий