Сегодня я расскажу как довольно просто поднять и настроить свой собственный сервер карт (тайловый сервер) на основе Ubuntu Server 14.04 LTS и OpenStreetMap.
Итак начнём. Из Википедии:
OpenStreetMap (дословно «открытая карта улиц»), сокращённо OSM — некоммерческий веб-картографический проект по созданию силами сообщества участников-пользователей Интернета подробной свободной и бесплатной географической карты мира.
Есть довольно подробная официальная статья об установке и настройке tile-сервера, но есть ещё более простой и быстрый способ.
Читати далі…
- Категорія: Адміністрування
- Теги: apache, gis, mapnik, mod_tile, nginx, openstreetmap, osm, postgis, postgresql, renderd, tile, ubuntu, оптимизация, сервер, тюнинг
Сегодня я расскажу как можно работать с базой данных PostgreSQL с помощью nginx’a без application’a (например, PHP или любого другого). Т.е. эта технология абсолютно не зависит от языка, на котором сделан сайт/проект/система.
Мы будем использовать мощь PostgreSQL в хранимых процедурах (stored procedures/functions), а кэшировать с помощью быстрого Redis.
Читати далі…
Предел возможностей БД часто упирается в дисковые операции. Поэтому стоит оптимизировать эти операции, меняя логику, архитектуру, масштабируя и пр.
Запрос выведет статистику по таблицам в обратном порядке по сумме операций записи, т.е. сверху будут таблицы с наиболее интенсивной записью.
SELECT
schemaname AS schema, -- схема
relname AS table, -- таблица
pg_size_pretty( pg_relation_size(relid) ) AS tsize, -- размер
n_tup_upd + n_tup_ins + n_tup_del AS write, -- операций записи (I/U/D)
seq_scan + idx_scan AS read, -- всего чтений
n_tup_ins AS ins, -- операции INSERT
n_tup_upd AS upd, -- операции UPDATE
n_tup_del AS del -- операции DELETE
FROM
pg_stat_user_tables
ORDER BY
( n_tup_upd + n_tup_ins + n_tup_del ) DESC
Кстати, так вы можете получить список всех индексов, а так — список неиспользуемых индексов.
SSD-диски с каждым годом становяться всё доступнее и всё больше в объёмах. Так и я стал владельцем SSD-диска Kingston SSDNow V+200 60GB 2.5″ SATAIII, “распилив” его пополам, я установил на него любимый Linux Xubuntu 12.10 и новенькую Windows 8 Pro.
О тюнинге последней я расскажу ниже.
А вот о тюнинге Linux Xubuntu на SSD довольно неплохо рассказано вот здесь. Читати далі…
Запрос отображает использование индексов. Что позволяет увидеть наиболее часто использованные индексы, а также и наиболее редко (у которых будет index_scans_count = 0
).
Учитываются только пользовательские индексы и не учитываются уникальные, т.к. они используются как ограничения (как часть логики хранения данных).
В начале отображаются наиболее часто используемые индексы (отсортированы по колонке index_scans_count
).
SELECT
idstat.relname AS table_name, -- имя таблицы
indexrelname AS index_name, -- индекс
idstat.idx_scan AS index_scans_count, -- число сканирований по этому индексу
pg_size_pretty(pg_relation_size(indexrelid)) AS index_size, -- размер индекса
tabstat.idx_scan AS table_reads_index_count, -- индексных чтений по таблице
tabstat.seq_scan AS table_reads_seq_count, -- последовательных чтений по таблице
tabstat.seq_scan + tabstat.idx_scan AS table_reads_count, -- чтений по таблице
n_tup_upd + n_tup_ins + n_tup_del AS table_writes_count, -- операций записи
pg_size_pretty(pg_relation_size(idstat.relid)) AS table_size -- размер таблицы
FROM
pg_stat_user_indexes AS idstat
JOIN
pg_indexes
ON
indexrelname = indexname
AND
idstat.schemaname = pg_indexes.schemaname
JOIN
pg_stat_user_tables AS tabstat
ON
idstat.relid = tabstat.relid
WHERE
indexdef !~* 'unique'
ORDER BY
idstat.idx_scan DESC,
pg_relation_size(indexrelid) DESC
Firefox для своей работы использует БД SQLite, файлы которой нужно периодически оптимизировать (Vacuum). Что может давать в некоторых случаях трёхкратное ускорение запуска Firefox.
Сделать это можно с помощью следующего скрипта:
#!/bin/bash
echo ""
cd ~/.mozilla/firefox/*.default/
pwd
echo ""
for i in *.sqlite;
do
prev_size=`ls -lAgh $i | awk '{ print $4 }'`
echo -n " Vacuum "$i"... ";
echo "VACUUM;" | sqlite3 $i ;
echo -e "\tOK ($prev_size -> `ls -lAgh $i | awk '{ print $4 }'`)";
done
echo ""
Для работы необходимы пакет sqlite3
sudo apt-get install sqlite3
Данный скрипт можно запускать периодично. Например при старте компьютера.
Одним из основных критериев успешности любого интернет-ресурса является скорость его работы и с каждым годом пользователи становятся всё более и более требовательными по этому критерию. Оптимизация работы php-скиптов — это один из методов обеспечения скорости работы системы.
В этой статье я бы хотел представить на суд общественности свой сборник советов и фактов по оптимизации скриптов. Сборник собирался мною достаточно долго, основан на нескольких источниках и личных экспериментах.
Читати далі…