Category Archives: Server Optimization

Load testing tools

https://yandex.ru/dev/tank/ [Tool | Free] https://jmeter.apache.org/ [Tool | Free] http://tsung.erlang-projects.org/ [Tool | Free] https://gatling.io/ [Tool | Free/$] https://k6.io/ [Tool | Free/SaaS] https://locust.io/ [Tool | Free] https://loader.io/ [SaaS | Free/$] https://artillery.io [Tool | Free/$] https://github.com/wg/wrk [Tool | Free]

How to analyze the performance of your go application in production

You should definitely use chi’s middleware for running pprof and stuff in your admin panel. That’s the repo — https://github.com/go-chi/chi That’s the profiler — https://github.com/go-chi/chi/blob/master/middleware/profiler.go CPU profiling After that you can run something like this in shell:

Or just open it in the browser:

If it opens something different then your browser (sublime …

Read more

SQL. Как переписать correlation subquery в JOIN to derived table

Допустим есть такая таблица

Подробное объяснение EXPLAIN в PostgreSQL

understanding_explain

Встроенные утилиты linux для слежения за системой

и многие, многие другие на одной схеме:

Настройка свопа и управление кэшами в Ubuntu

http://fx-files.ru/archives/704

Для сохранения настройки после перезагрузки внесите в конец файла /etc/sysctl.conf следующую строку:

Чтобы сразу применить настройку:

Доклад об использовании RabbitMQ в Mamba

Асинхронная обработка данных: RabbitMQ, Comet from Андрей Федоровский http://www.slideshare.net/pomme3/ss-20026832

Доклад про отладку node на production

Вот слайды — http://dtrace.org/blogs/dap/2012/05/31/debugging-node-js-in-production-fluent-slides/. В докладе рассказывается, как отлаживать боевой сервер без его остановки и как работать с дампами зависшего сервера. Все сводится к использованию двух инструментов: Dtrace (http://dtrace.org/blogs/dap/2012/04/25/profiling-node-js/, http://dtrace.org/blogs/dap/2012/01/13/playing-with-nodev8-postmortem-debugging/) и mdb_v8 (https://github.com/joyent/illumos-joyent/blob/master/usr/src/cmd/mdb/common/modules/v8/mdb_v8.c, https://github.com/joyent/node/blob/master/src/v8ustack.d)

Библиотека для Node.js для нереально больших нагрузок

https://hacks.mozilla.org/2013/01/building-a-node-js-server-that-wont-melt-a-node-js-holiday-season-part-5/ Использование:

Т.е. при большой занятости показывает всем 503 (в этом примере), от чего проку конечно мало. Но делает очень быстро, а в реальных условиях можно отдавать страницу-заглушку, практически не нагружая сервер. Интересно то, как он меряет — меряет очередь заданий во внутреннем цикле Node.js

Realtime-профилирование проекта от Instagram

Measurements: счетчики и таймеры Дабы следить за всем, что происходить внутри, надо как-то мониторить всю активность. Обычно это два типа активности: какие-то количества (counters, регистраций в секунду, например) и какие-то интервалы времени (timers, сколько по времени занимает лайкнуть винтажное фото, например). Но как быть, когда у тебя не одна машина на балконе, а пара десятков …

Read more