<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Admin tips &#187; redis</title>
	<atom:link href="http://stanly.net.ua/tags/redis/feed/" rel="self" type="application/rss+xml" />
	<link>http://stanly.net.ua</link>
	<description>очередной админский блог</description>
	<lastBuildDate>Thu, 19 Nov 2009 16:45:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Мониторинг для Redis</title>
		<link>http://stanly.net.ua/monitoring-dlya-redis/</link>
		<comments>http://stanly.net.ua/monitoring-dlya-redis/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 18:58:30 +0000</pubDate>
		<dc:creator>Stanly</dc:creator>
				<category><![CDATA[Дела админские]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[munin]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[redis]]></category>

		<guid isPermaLink="false">http://stanly.net.ua/?p=60</guid>
		<description><![CDATA[Краткий экскурс:
Redis &#8211; это высокопроизводительное нереляционное распределённое хранилище данных. В отличие от Memcached, который может в любой момент удалить данные, вытесняя старые записи новыми, Redis хранит информацию постоянно.
Memcached позволяет хранить массивы, но эти массивы будут сохранены в виде строк, т.к. происходит их сериализация. Следовательно, атомарные операции над такими массивами невозможны.
Redis же позволяет хранить как строки, [...]]]></description>
			<content:encoded><![CDATA[<p>Краткий экскурс:</p>
<p><a href="http://code.google.com/p/redis/">Redis</a> &#8211; это высокопроизводительное нереляционное распределённое хранилище данных. В отличие от Memcached, который может в любой момент удалить данные, вытесняя старые записи новыми, Redis хранит информацию постоянно.</p>
<p>Memcached позволяет хранить массивы, но эти массивы будут сохранены в виде строк, т.к. происходит их сериализация. Следовательно, атомарные операции над такими массивами невозможны.<br />
Redis же позволяет хранить как строки, так и массивы, атомарные операции pop / push, делать выборки из таких массивов и кучу других полезных для программистов вещей.</p>
<p>Плюс ко всему, Redis очень производителен: 110000 SET запросов в секунду, 81000 GET запросов в секунду на Xeon X3320 2.5Ghz Linux 2.6.x (более <a href="http://code.google.com/p/redis/wiki/Benchmarks">детально</a> о производительности), а также хорошо масштабируем (master/slave).</p>
<p>Так как с точки зрения администрирования мониторить нужно всё, написал плагин для munin, который мониторит некоторые параметры Redis:</p>
<ul>
<li>connected clients</li>
<li>requests per second</li>
<li>connections per second</li>
<li>used memory</li>
</ul>
<p>Остальные параметры в условиях конкретной задачи не были важны, но их легко можно мониторить, слегка модифицировав плагин (достаточно базовых знаний Perl).<br />
<span id="more-60"></span><br />
Скачать плагин можно <a href="http://stanly.net.ua/repo/misc/redis_">здесь</a></p>
<p>Установка проста:</p>
<ol>
<li>Скачиваете файл redis_ в директорию, где лежат сами файлы плагинов (например, /usr/share/munin/plugins)</li>
<li>В директории, где находятся симлинки на плагины (например, /etc/munin/plugins), создаёте 3 новых symlink: redis_connected_clients, redis_per_sec и redis_used_memory, которые ведут на файл redis_</li>
<li>При необходимости (если Redis крутится не на стандартном порту, либо вообще на другом хосте), отредактируйте файл plugin-conf.d/munin-node &#8211; плагин понимает опции env.host и env.port</li>
<li>Рестарт munin-node</li>
</ol>
<p>В итоге получается как-то так:</p>
<div id="attachment_69" class="wp-caption alignnone" style="width: 505px"><img class="size-full wp-image-69" title="redis_connected_clients-week" src="http://stanly.net.ua/wp-content/uploads/2009/10/redis_connected_clients-week1.png" alt="redis connected clients" width="495" height="276" /><p class="wp-caption-text">redis connected clients</p></div>
<div id="attachment_71" class="wp-caption alignnone" style="width: 505px"><img class="size-full wp-image-71" title="redis_per_sec-week" src="http://stanly.net.ua/wp-content/uploads/2009/10/redis_per_sec-week2.png" alt="redis requests/connections per second" width="495" height="276" /><p class="wp-caption-text">redis requests/connections per second</p></div>
<div id="attachment_72" class="wp-caption alignnone" style="width: 505px"><img class="size-full wp-image-72" title="redis_used_memory-week" src="http://stanly.net.ua/wp-content/uploads/2009/10/redis_used_memory-week.png" alt="redis used memory" width="495" height="264" /><p class="wp-caption-text">redis used memory</p></div>
]]></content:encoded>
			<wfw:commentRss>http://stanly.net.ua/monitoring-dlya-redis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
