Сборник советов и фактов по оптимизации PHP-скриптов

Одним из основных критериев успешности любого интернет-ресурса является скорость его работы и с каждым годом пользователи становятся всё более и более требовательными по этому критерию. Оптимизация работы php-скиптов — это один из методов обеспечения скорости работы системы. В этой статье я бы хотел представить на суд общественности свой сборник советов […]

Защита от DDOS атаки случайными аргументами при помощи Nginx

Я встретился с новым типом ботнета. Если старый долбил только в главную, то новый действует иначе. Он посылает множество запросов вида GET someurl/?t1555ss5326=5326, где someurl — найденный ботом php скрипт. Но если атакуемый сайт поддерживает ЧПУ, то такие запросы к нему должны отсутствовать в принципе. ЧПУ сейчас является стандартом де-факто, […]

PostgreSQL. Список таблиц с очень частой записью на диск

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

Как проверить диск на ошибки и бэд-сектора в Linux

Примером хорошего тона и здравого смысла является периодическая проверка диска на битые сектора (бэд-сектора, badblocks) и обычная проверка диска на ошибки записи и т.п. Разберёмся что такое битые сектора. Любимая Википедия говорит следующее:

Соответствия команд SVN и Git

Я создал небольшую шпаргалку соответствий команд систем управления версиями SVN/Subversion и Git. Пользуйтесь!  svnadmin create repo git init git add . svn import file://repo git commit svn diff | less git diff svn diff -rrev path git diff rev path patch -p0 git apply svn status git status svn revert path git checkout path svn add file git […]

Партицирование (partitioning) больших таблиц PostgreSQL

Сегодня я хочу вам рассказать о партиционировании больших таблиц в моей любимой PostgreSQL. Итак, начнём с определения: Партиционирование (partitioning) — это разбиение больших таблиц на логические части по выбранным критериям. Партиционированные или секционированные таблицы призваны улучшить производительность и управляемость базами данных. Вроде понятно. Теперь идём дальше. Как же разбить таблицу […]

Тюнинг Windows 10/8/7 на SSD

SSD-диски с каждым годом становяться всё доступнее и всё больше в объёмах. Так и я стал владельцем SSD-диска Kingston SSDNow V+200 60GB 2.5″ SATAIII, «распилив» его пополам, я установил на него любимый Linux Xubuntu 12.10 и новенькую Windows 8 Pro. О тюнинге последней я расскажу ниже. А вот о тюнинге Linux […]

PostgreSQL. Список всех таблиц

Вывести список всех таблиц при помощи SQL довольно просто: SELECT n.nspname AS «schema», c.relname AS «table» FROM pg_catalog.pg_class AS c LEFT JOIN pg_catalog.pg_namespace AS n ON n.oid = c.relnamespace WHERE n.nspname NOT IN (‘pg_catalog’, ‘pg_toast’) AND c.reltablespace > 0 AND c.relkind = ‘r’ ORDER BY c.relname ASC В результате получим […]

PHP. Достаём данные из Google Analytics через API используя Service Account

Сегодня я хотел бы поделиться знаниями по извлечении данных из Google Analytics, используя их API v3 на стороне сервера (server-side), т.е. без участия браузера пользователя. Самое странное, что в Сети в основном описаны все примеры с использованием эмуляции браузера и аккаунта пользователя (пара email+пароль). Мы так делать не будем, т.к. […]