Чтобы добиваться оптимальной работы, надо хорошо разбираться с неоптимальными трудностями :)
Просмотрел курс на курсере Troubleshooting and Debugging Techniques
Разберем некоторые интересные инструменты, которые я нашел для себя:
- strace - список всех системных вызовов.
Запуск с ключом -o поможет все это записать в файл для дальнейшего изучения. Может быть полезным, когда из логов из сообщения об ошибки до сих пор не складывается картина. Просмотрев последние вызовы, с какой-то вероятностью можно что-то понять
- ab (ApacheBench ) - помогает лучше понять скорость работы пакетов до сервера
Как мне показлось, тот же ping, только более регулируемся и точный. Бывает полезным, если можете иметь дело с веб-сервером.
- renice - приоритезация процесса от 0(самый приоритетный) до 19
Именно этой командой в терминале можете поменять приоритет процесса.
- killall -STOP - остановка процесса (но не завершение). kill -CONT - дальнейший перезапуск.
Иногда может быть полезным, когда много процессов работают, а завершать их не хочется (потеря информации). Данное сочетание команд позволит их приостановить, а затем спокойно запустить, но уже так, как вам требуется
- sqlite годная вещь, когда не нужен целый сервер, просто работа над одной базой.
Если вам не нужно что-то огромное, а просто простенькая программка, которая использует данный, можете не поднимать sql сервер, а просто использовать эту штуку.
- memcached - помогает сэкономить на повторных запросах
В тех случаях, когда запросы могут быть однообразными и хотите сэкономить на работе с данными
- varnish - ускоритель для http
- valgrind - может указать на undefined behavior или баги
Если Вы пишете на С\С++, наверняка уже знаете об этой штуке. Помогает пресечь segmentation error, может указать на утечки памяти.
- ulimit -c unlimited
Насколько я понял, эта команда может позволить получить core файлы после запуска глючной программы. Что дальше? Скормим эти core файлы в gdb
- gdb -c core example
- backtrace, а затем up
команды в gdb, которые позволят перейти непосредственно в месту ошибки и выше
- iftop - консольная утилита, показывает данные работы с сетью
Не сказать, что курс какой-то суперполезный, проходится легко, если вы имеете опыт в it. А что-то новое скорей всего точно узнаете.
_____________________________________
Друзья, подписывайтесь и ставьте лайки :) Тогда я буду больше писать интересных вещей! Всем хорошего дня!