Оказывается картинки на ваших сайтах весят больше, чем положено. Происходит это по причине не оптимальных алгоритмов сжатия с помощью различных программ. Кстати, фотошоп File->Save for web довольно хорошо оптимизирует изображение. А вот ACDSee и уж тем более php-библиотеки типа GD дают далеко не оптимальный результат. (далее...)
У Гугла есть полезный сервис Google Webmasters Tools, в котором можно посмотреть скорость загрузки вашего сайта. Выглядит это так (кликабельно)
Не знаю почему, но по умолчанию настройки MySQL рассчитаны на десктопы 90-х годов. Например, 8Mb памяти под индексы InnoDB. Помните, как Билл Гейтс заявил, что «640 Кб памяти должно хватать каждому». Дефолтные настройки MySQL из этой серии.
Для начала моя выжимка из конфига (4G RAM, AMD Athlon 64 X2 Dual 5600+)
# ТОЛЬКО UTF! ТОЛЬКО ХАРДКОР! collation_server=utf8_general_ci character_set_server=utf8 default-character-set = utf8 # по умолчанию пускай будет InnoDB default-storage-engine = InnoDB key_buffer_size = 512M innodb_buffer_pool_size = 512M innodb_additional_mem_pool_size = 16M innodb_flush_method = O_DIRECT innodb_flush_log_at_trx_commit = 2 innodb_thread_concurrency = 8 join_buffer_size = 8M sort_buffer_size = 8M read_rnd_buffer_size = 8M tmp_table_size = 64M max_heap_table_size = 32M table_cache = 256 log_slow_queries = /var/log/mysql/mysql-slow.log long_query_time = 1 query_cache_type = 2 query_cache_limit = 1M query_cache_size = 32M
Как известно, PHP — интерпретируемый язык, т.е. каждый раз при обращении к скрипту, этот скрипт компилируется. Если у вас 1 скрипт, то ничего страшного нет, так как время компиляции не большое. Но в современных CMS и фрэймворках при отображении страницы используется 10-300 отдельных php-файлов (проще говоря, инклуды). Чем больше инклудов и чем они тяжелее, тем дольше выполняется процесс компиляции. (далее...)
Статья для новичков. В MySQL есть встроенное средство для отслеживания медленных запросов.
В конфиге нужно просписать
log_slow_queries = /var/log/mysql/mysql-slow.log long_query_time = 1
Есть 2 хороших книжки по оптимизации сайтов.
Это конечно не свежак, но и не старье 90-х годов, тем более подобных книг не было впринципе.
Книга «Реактивные веб-сайты»
Книга «Разгони свой сайт»
Одно время эти ребята пиарились на Хабре, у них на сайте скопилось много статей, но сейчас их сайт стал чисто коммерческим. Не знаю насколько успешен их бизнес, но чуваки молодцы. А все статьи по сути содержаться в тех книгах.
Книги повествуют о клиентской оптимизации, т.е. советов по оптимизации MySQL вы там не найдете, но есть довольно много информации про настройку nginx и apache.
Уже давно Яндекс и Гугл предоставляют доступ к популярным JavaScript-библиотекам. Буду рассматривать Яндекс, так как в рунете его CDN работает быстрее. (далее...)
На конкретном примере из своей практики расскажу про полезную фичу SHOW PROCESSLIST (далее...)
В MySQL есть одна полезная команда optimize table, которая как не сложно догадаться оптимизирует таблицу, а если конкретно, то дефрагментирует таблицу (по аналогии с дефрагментацией диска). Зачем это нужно? (далее...)
Несколько слов о клиентской оптимизации. Не создавайте десятки маленьких файлов css и js. Это плохо сказывается на загрузке страницы. На каждый файл создается отдельное http-соединение и при множестве малых файлов суммарно вы проигрываете. Например, сайт Siemens.com
(далее...)
В принципе, рассказывают очевидные вещи. Причем, рассказывают далеко не про все способы разгона базы. Но в целом послушать можно.
Возможно скоро напишу большой пост по оптимизации MySQL с тестами и примерами на реальных базах.