• Как найти причину падения \ замедления работы сервера с PostgreSQL?

    Melkij
    @Melkij
    PostgreSQL DBA
    весьма мощный сервер (8gb

    Дааааа? А я думал дохленькая виртуалочка. Довольно средние железки на 256гб тогда что?

    На тяжелые запросы не грешу, т.к., во-первых, билд запросов на 100% отдан ORM (Eloquent, Lumen), и возможность кривыми руками написать какой-нибудь count(*) сведена к нулю

    Ха. Хахахаха. Хорошая шутка.
    Самый лютый бред вместо запросов делают именно ORM.

    Выкручивать настройки логирования, в момент проблемы смотреть хотя бы вот это: https://github.com/dataegret/pg-utils/blob/master/...
    Ставить какой-то мониторинг, умеющий мониторить базу.
    И смотреть что именно делает база и чем занято железо в момент проблемы. Особенно I/O. process title бы хоть сохранили/написали. Там и то продублирован command tag.
    Ответ написан
    Комментировать
  • Когда язык может стать узким местом?

    @rPman
    Язык почти никогда не создает проблем со скоростью, но их создают инструменты и библиотеки, которые используют разработчики, чтобы облегчить себе жизнь.

    И на php (phpreact) можно написать приложение, обрабатывающее 10к запросов в секунду на одном процессоре, а можно на nodejs (javascript) написать асинхронное приложение, которое штатным распаковщиком gzip будет тратить 99% времени на распаковку gzip а потом оставшуюся половину на копирование массива с данными (из-за чего скорость на порядок ниже php получается, реальный пример простой обработки БОЛЬШОГО количества упакованных текстовых дампов)

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

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Во-первых, язык влияет на производительность программистов, а не программ. Узким местом может стать платформа, в вашем случае виртуальная машина CPython. Но при разработке сетевого ПО в целом и web-приложений в частности главный тормоз - это ввод/вывод. Издержки на него на порядки превосходят издержки на интерпретацию, так что последняя практически не влияет на производительность. В то же время CPython хорошо справляется с вводом/выводом с помощью Asyncio и способен решать проблему c10k.

    Во-вторых, это зависит от того, что именно делают ваши микросервисы с каждым запросом. Например, для обычного интернет-магазина на очень синхронном Django 300 rps - это вполне обычная нагрузка, о которой не стоит беспокоится, если в команде разработчиков нет умственно отсталых и криворуких.
    Ответ написан
    Комментировать
  • Какую справедливую формулу можно использовать для вычисления истинной симпатии (лайки) к ответу на Тостере?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Никакую. Все выводы из наблюдаемого поведения - субьективны. Реальность из субьективного восприятия получить невозможно. Какой метод рассчета Вы бы ни применили - вы получите субьективную оценку. Т.е. такую которая будет нравится Вам. Но никак не будет отражать реальную суть вещей.

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

    Вот Вам еще один мысленный эксперимент. Представьте себе вы поймете как писать ответ так, чтобы он был отмечен лучшим. Будут ли данные по такой схеме ответы действительно лучшими или они станут просто собирать максимальное количество лайков? А если есть схема по которой можно дать действительно лучший ответ значит мы открыли универсальный способ познания. Нет? Значит остается только второй вариант. Получится просто ответ с большим количеством субьективной поддержки со стороны читателей. Это только ухудшит ситуацию, люди будут писать ответы ради одобрения окружающих. Вопрос уйдет на второй план. Платформа погибнет.

    Вот Вам пример из другой области. На литературных порталах можно прочитать разнообразные, порой полярные отзывы о книге. Есть ли математический метод который скажет, стоит мне читать эту книгу или нет? Способ один - почитать и узнать. Какую бы вероятностную уверенность ни выдал рекомендательный алгоритм в том, что мне эта книга понравится, она мне может не понравиться. И наоборот.
    Ответ написан
    3 комментария
  • Есть ли разница между энергопотреблением kde/gnome, xfce/mate?

    @fsduiwe
    Конечно есть
    kde/gnome жрет намного больше ресурсов чем xfce
    Я бы их так распределил по обжорству

    kde
    gnome
    mate
    xfce

    Кде использует видео карту
    Так же расход памяти больше

    От версии тоже многое зависит
    Ответ написан
    Комментировать
  • Как обрезать mp3-файл?

    Neuroware
    @Neuroware
    Программист в свободное от работы время
    Почему сразу не в блокноте резать?
    Если по сути вот
    ffmpeg -ss 00:00:30.00 -t 25 -i bar.mp3 -acodec copy bar-new.mp3
    режет с любой точностью любой файл который скормишь, даже видео
    Ответ написан
    1 комментарий
  • Какой тип поля mysql для быстрого поиска?

    @shevchenko__k
    Помогаю новорожденным web программистам
    Ответ написан
    Комментировать
  • Подойдет ли SSE или оставить WebSocket?

    bingo347
    @bingo347 Куратор тега Node.js
    Crazy on performance...
    И SSE и WS - протоколы поверх http, оба могут работать поверх http/2 и иметь мультиплексирование
    Но есть между ними и различия:
    WS обеспечивает двухстороннюю связь, после установления рукопожатия любая сторона может слать сообщения, протокол бинарный, все сообщения кодируются в бинарные message-frame, что требует доп библиотек на стороне сервера (на браузере такая идет в стандартном апи), зато позволяет передавать как бинарные так и текстовые данные
    SSE - односторонняя связь, только от сервера к клиенту, клиент может передать данные только в url при открытии соеденения, дальше вещает только сервер, протокол текстовый, если есть бинарные данные их придется обернуть в base64 (например), с точки зрения сервера - это обычный GET запрос, который сервер не закрывает, а просто шлет данные в http body в особом формате, делая периодически flush соединения (в идеале после каждого сообщения)

    Все остальное, вроде комнат и т.д. - надстройки библиотек и не более
    В случае koa - по дефолту он завершает запрос когда зарезолвится промис из последнего middleware, для SSE придется это обходить
    Ответ написан
    Комментировать
  • Какую архитектуру бд выбрать для приложения с большим количеством аккаунтов?

    Immortal_pony
    @Immortal_pony Куратор тега MySQL
    100000 - это мелочи, плодить таблицы для каждого пользователя не надо.
    Ответ написан
    Комментировать
  • Много маленьких запросов к REST API или один большой?

    notiv-nt
    @notiv-nt
    Как ваше ничего? Да, моё тоже
    graphql это решает как бы,
    Rest не единственная возможность общения клиент-сервер
    Ответ написан
    2 комментария
  • Стоит ли использовать изоморфное приложение в высоконагруженном e-commerce проекте?

    @nrgian
    Все мои аргументы, в том числе, что JS априори медленнее Go и не поддерживает многопоточность, нет нормального ООП, и что не надо клиента грузить тоннами JS ради full AJAX, и вообще разработку станет вести легче и быстрее они оспаривают.


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

    Ибо основные задержки не зависят от языка - это сеть и СУБД (и пр. связанные с дисками операции).

    Впрочем, при нагрузке сервера очень большим числом клиентов и/или при очень сложной логике обработки (но не связанной с СУБД/дисками, а завязанной только на процессор) - скорость языка значение уже имеет.

    У вас - как? В чем именно узкое место?

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

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

    и что не надо клиента грузить тоннами JS ради full AJAX


    При несложной логике - да.
    При сложной логике - не все так очевидно.
    Ответ написан
    2 комментария
  • Стоит ли использовать изоморфное приложение в высоконагруженном e-commerce проекте?

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

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

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

    Что можно сделать:
    - определить реальные проблемы
    - определить критерии их решения (скорость, размер, page speed и так далее)
    - определить время за которое команда готова оптимизировать ангулярное приложение до нужных параметров

    Если не сделают - поднять вопрос еще раз, показав свой вариант.

    В любом случае - продавить велосипед будет сложно, есть достаточно серьезные объективные причины почему этого не стоит делать, польза должна заметно превышать минусы и это надо доказать всем.

    Плюс велика вероятность что ваши девелоперы хотят "модно-молодежно" на "современных технологиях" это уже человеческий фактор и он будет самым проблемным.
    Ответ написан
    4 комментария
  • Какой самый быстрый язык для бота ВК?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Make it run, make it right, make it fast © Kent Beck
    Ответ написан
    Комментировать
  • Какой самый быстрый язык для бота ВК?

    sergiks
    @sergiks Куратор тега ВКонтакте
    ♬♬
    Ассемблер, Си.
    Но какая разница? Сделайте для начала медленного бота с кучей недостатков.
    У вашего первого бота обязательно должны быть недостатки, иначе неправильно это как-то.
    Ответ написан
    Комментировать
  • Как влить данные из postgresql в elasticsearch?

    @vanillathunder
    На сервере делаете запросы к postgresql преобразовываете в нужный вид и отправляете в elasticsearch. Одной командой "влить" не получится.
    Ответ написан
    1 комментарий
  • Как передавать пароли сотрудникам?

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

    Никогда такого не видел на практике, но прикольно же?
    Ответ написан
    1 комментарий
  • Golang подходит ли для создания сайтов?

    @LiguidCool
    Судя по вопросам оно вам не надо.
    1) да , быстрее, но зависит от колера. В пыхе требования ниже.
    2) а пыха влияет? В обоих случаях от вас зависит.
    3) сервер встроен но иногда еще ставят mind.
    6) для мелких в целом нет. Это как на рыбе писать без фоеймворка или cms.
    7) естественно.
    Имхо, лучше тогда на ноде писать.
    И не забудьте , что целый гемор будет работу найти.
    Неотвеченное гуглится.
    Ответ написан
    9 комментариев
  • Golang подходит ли для создания сайтов?

    @dinegnet
    Golang используют для создания сайтов да. Только дорогих сайтов. Скажем есть у меня проектик - хозяин ввалил в него уже стоимость Ленд Круизера свежего и все продолжает платить и платить.
    Вы - не тот человек, которого будут для этого нанимать.
    А в дешевой нише вы не сможете конкурировать по цене с ПХПистами.

    1. Как обстоят дела с производительностью в сравнении с php смотрел benchmark go выигрывает у php в 2 раза по скорости
    (возможно мне стоит и дальше сайты создавать на php)


    Одни из самых высоконагруженных сайтов в мире сделаны с PHP - Facebook, примеру.
    Или Vkontakte

    Формально Go быстрее. Если ваш сервер и клиент разделяет только 10 метров.
    Но в мире веба очень большие задержки - это связь между сервером и браузером, там совсем другие расстояния и другой порядок задержек. А это от языка программирования не зависит.

    На их фоне, если вы нормально запрограммировали сайт - не должно тормозить ни на PHP ни на Go.

    2. Влияет ли как-то golang на seo оптимизацию-выдачу
    (если для frontend не админ панели взять angularjs то сайт не будет весь индексироваться)


    Вам с таким уровнем понимая рано что-то решать.
    Делайте то, что старшие скажут.

    3. Какую выбрать связку для сервера возможно имеется nginx или apache в поддержке для golang (или у go имеется свой сервер и как он в сравнении с остальными)


    Это не связано с языком. Это связано с администрирование, проектированием, архитектурой системы, но не языка.

    4. Поддерживает ли golang mysql и какая скорость


    Да.
    Скорость работы с СУБД ограничена, как правило, самой этой СУБД - это узкое место всегда.
    От языка программирования, использующего ту или иную СУБД - зависит слабо.

    5. Возможно имеются хорошие фреймворки написанные на golang для создания именно сайтов


    Revel, Beego.me, gin и еще десяток.
    Только они не нужны.
    Все что нужно уже входит в стандартную библиотеку Golang.
    Для облегчения работы стоит глянуть на фреймворки - Gorilla, Martini....

    6. Подойдет ли вообще golang для мелких или для крупных сайтов

    Все дело только в том, сможет ли заказчик оплатить.
    На Go выходит дороже делать чем на PHP.
    Поэтому ты просто пролетишь с заказами.
    Дешевых заказов в разы больше.
    Дорогие заказы чтобы взять - это нужно иметь ту еще квалификацию, до которой, судя по формулировкам - тебе еще лет 7 практиковаться в программировании.

    7. Имеются ли подводные камни при разработке

    Для тебя - важно, что мало информации, а особенно мало - на русском.
    Ответ написан
    8 комментариев
  • Как с помощью golang создать webm видео?

    Можно так. В системе должна быть установлена консольная утилита ffmpeg.

    Нажмите, чтобы раскрыть код
    package main
    
    import (
    	"io"
    	"os"
    	"os/exec"
    	"strings"
    )
    
    func main() {
    	resulution := "640x480" // Разрешение видео
    	framerate := "1"        // Частота кадров, здесб нам достаточно 1 кадр в секунду
    	outfile := "out.webm"   // Файл, в который писать, расширение задаст его формат
    	color1 := "0xFF0000"    // RGB (255,0,0)
    	color2 := "0x00FF00"    // RGB (0,255,0)
    	color3 := "0x0000FF"    // RGB (0,0,255)
    
    	//////////////////////////////
    	filtergraph := []string{
    		"color=c=" + color1 + ":size=" + resulution + ":duration=3:s=qcif:r=" + framerate + " [v1]",
    		"color=c=" + color2 + ":size=" + resulution + ":duration=3:s=qcif:r=" + framerate + " [v2]",
    		"color=c=" + color3 + ":size=" + resulution + ":duration=3:s=qcif:r=" + framerate + " [v3]",
    		`[v1] [v2] [v3] concat=n=3 [v]`,
    	}
    
    	allOptions := []string{
    		"-filter_complex", strings.Join(filtergraph, ";"),
    		"-map", "[v]",
    		"-threads", "0", "-y", outfile,
    	}
    
    	RunCmd("ffmpeg", allOptions...)
    }
    
    func ReadAndPrint(r io.Reader) {
    	io.Copy(os.Stdout, r)
    }
    
    func RunCmd(name string, args ...string) {
    	cmd := exec.Command(name, args...)
    	stdout, err := cmd.StdoutPipe()
    	if err != nil {
    		panic(err)
    	}
    	stderr, err := cmd.StderrPipe()
    	if err != nil {
    		panic(err)
    	}
    
    	go ReadAndPrint(stdout)
    	go ReadAndPrint(stderr)
    
    	err = cmd.Run()
    	if err != nil {
    		panic(err)
    	}
    }
    Ответ написан
    Комментировать
  • Запись звука на компьютере?

    @rPman
    Работа со звуком требует в первую очередь - тихое помещение. Обычный компьютер, с воздушным охлаждением, очень шумный, вы могли к этому привыкнуть а бездушная машина все эти звуки услышит и запишет все равно.

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

    Второе - нормальное оборудование, хороший микрофон, экранированные провода (или вообще беспроводные, только не bluetooth, если вам нужно качество звука) и повторюсь, можно арендовать помещение для звукозаписи.

    Если вам надо здесь и сейчас и побюджетнее, покупайте длинный hdmi провод, радиоклавиатуру с мышкой, берите смартфон с приложением-диктофон, и выносите все это с монитором в соседнюю комнату (хоть в туалет, я не шучу), закрывайте двери, вешайте на стены ковры, тряпки и прочее (они глушат эхо). Смартфон вообще отличное устройство для записи речи, не добавляет шумов (пассивное охлаждение), правда штатный микрофон обычно слабый, но никто не мешает купить гарнитуру (озаботьтесь переходниками, так как большинство гарнитур хотят 2 миниджека 3.5 вместо одного как в смартфоне, если он у вас вообще есть, но если нет то сами себе буратины).
    Ответ написан
    Комментировать