<?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>Egor&#039;s blog. Speak no lies. &#187; Amazon EC2</title>
	<atom:link href="http://www.egorka.org/tag/amazon-ec2/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.egorka.org</link>
	<description>Moving forward</description>
	<lastBuildDate>Thu, 09 Sep 2010 17:46:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Нескучно живём</title>
		<link>http://www.egorka.org/2009/02/17/feelsoalive/</link>
		<comments>http://www.egorka.org/2009/02/17/feelsoalive/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 21:27:42 +0000</pubDate>
		<dc:creator>Egor</dc:creator>
				<category><![CDATA[Разработка]]></category>
		<category><![CDATA[Amazon EC2]]></category>
		<category><![CDATA[пиздец]]></category>
		<category><![CDATA[софт]]></category>

		<guid isPermaLink="false">http://www.egorka.org/?p=278</guid>
		<description><![CDATA[Есть у нас некое программное обеспечение, занимающееся пакетной обработкой документов в разных форматах, с СУБД в качестве backend &#8211; MS Access или MS SQL. Это самое некое ПО планируется запускать на &#8220;облаке&#8221; Amazon EC2. Постольку поскольку в стране кризис, а документов очень много, процесс необходимо оптимизировать таким образом, чтобы уменьшить затраченное машинное время, и, следовательно, [...]]]></description>
			<content:encoded><![CDATA[<p>Есть у нас некое программное обеспечение, занимающееся пакетной обработкой документов в разных форматах, с СУБД в качестве backend &#8211; MS Access или MS SQL. Это самое некое ПО планируется запускать на &#8220;облаке&#8221; Amazon EC2. Постольку поскольку в стране кризис, а документов очень много, процесс необходимо оптимизировать таким образом, чтобы уменьшить затраченное машинное время, и, следовательно, и количество долларов, перетекшее из нашего кармана в карман Amazon.</p>
<p>К концу этих безответственных экспериментов из окна офиса я начал видеть сумасшедший дом. За каждым изменением следовал прогон шестисотмегабайтного набора тестовых данных с секундомером и занесение цифирей в таблицу. Итак:</p>
<p>Первое, и самое очевидное &#8211; пробуем разные конфигурации EC2. Они различаются количеством доступной памяти и вычислительных ядер (виртуальных, как и всё прочее). Прирост есть, но более мощные конфигурации стоят дороже, поэтому смысл эксперимента несколько портится. Однако, сравниваем цифры, выбираем лучший тип машины для наших целей, в прицелом на то, что этот метод &#8220;оптимизации&#8221; можно скомбинировать с чем-то из нижеследующего.</p>
<p>Второе &#8211; создаём RAID, т.е. striped drive встроенными средствами Windows. В основе лежит здравое предположение, что диски, пусть и виртуальные, в группе должны работать быстрее. Как позже выяснилось, ненамного. Что на этот диск поместить? Разумеется, файл подкачки, папку %TEMP% и собственно исходные и конечные данные. Потом пробуем туда же положить базы СУБД</p>
<p>Далее &#8211; чрез более быстрые диски &#8211; к звездам! Если RAID быстрее обычного диска, то диск виртуальный должен быть вообще на высоте. Создаём, кладем всё то же, что и в предыдущем примере. Быстро, блин! Виртуальный диск, понятно, <a href="http://www.superspeed.com/servers/ramdisk.php#buyramdisk">не бесплатен</a>, однако соотечественники в этом отношении не подкачали, создав <a href="http://ramdisk.nm.ru/ramdiskent-rus.htm">не хуже и дешевле</a>.</p>
<p>А как насчет того, чтобы создать <em>несколько</em> виртуальных дисков? Пробуем. Конечно, RAID из них не сделаешь, но зато можно положить все ключевые компоненты (как называлось &#8211; %TEMP%, своп, данные БД и данные) на разные диски и попробовать. Бодрячком, как говаривал Сява.</p>
<p>Пятое &#8211; пробуем заменить MS Access, использовавшийся до этого, на MS SQL. Это был офигенный рывок в производительности, особенно если разместить базы на виртуальном диске.</p>
<p>До этого мы пользовали SQL Express. Он бесплатный, поэтому не вполне enterprise-grade. Пробуем поменять его на Standard. ПРОФИТа в нашем <span style="text-decoration: line-through;">клиническом</span> случае [почти] нет.</p>
<p>Замечаем, что наше ПО написано без учёта многопоточности, соответственно, использует только одно ядро. Ну и ладно, у нас будет своя параллелизация &#8211; с блекджеком и шлюхами. Пробуем запустить несколько копий. Не работает &#8211; проверяет наличие имиджа себя в памяти. Переименовываем *.exe файлы в четыре разных (по числу ядер) &#8211; работает, но глючит. Тьфу, неинтересно.</p>
<p>Пробуем запустить те же самые экзешники в окружении Terminal Server. TS использует какой-то хитрый механизм, предоставляя каждому приложению свою виртуальную копию реестра, окружения, и всего прочего, т.о. копии становятся более изолированными друг от друга и чудесно работают даже безо всяких переименований. Читаем заклинания: change user /install, потом change user /execute, стало быстрее.</p>
<p>Так как программка использует Ms Office, пробуем даунгрейдить 2007 до 2003. Стало быстрее раза в полтора.</p>
<p>Ну и под конец дня, люто ненавидя всех, пробуем вообще унести SQL сервер на другую виртуальную машину. В нашем случае оказалось не принципиально.</p>
<p>Когда писался этот текст, стало известно, что мы не будем использовать сие супер-ПО из-за каких-то непоняток с лицензированием, а будем использовать софт от другой фирмы, изначально написанный для параллельной обработки. Завтра будет ещё один весёлый день&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.egorka.org/2009/02/17/feelsoalive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
