22 июн. 2010 г.

Быстрый доступ к памяти во Flash используя особенности Alchemy.

В конце 2008 с выходом Alchemy toolkit от Adobe, Nicolas Cannasse рассказал в своём блоге о Virtual Memory API который он добавил в haXe. Его дополнение к API основывалось на дополнительных возможностях Flash Player 10+ по работе с памятью.

Flash Player имеет ряд Fast memory op codes(pdf с презентацией) которые используются только компилятором Alchemy, другие компиляторы от Adobe этого не делают. Nicolas сделал возможным использовать эту особенность в своём компиляторе haXe, что позволило иметь очень быстрый доступ к памяти.

Стоит отметить, что AS3 API имеет доступ к этой быстрой памяти через Application.domainMemory:ByteArray, но используя это API никакого прироста скорости не получается, реализация этого API подкачала.

Так же, Nicolas сделал возможным используя haXe создавать библиотеки .swc которые можно подключать к обычным Flash/Flex проектам.

Michael Baczynski используя эти возможности haXe, создал библиотеку Data Structures (de.polygonal.ds.*) по работе с быстрой памятью.

Более подробнее о библиотеке и тестах скорости работы с ней можно посмотреть у Michael-a в его заметке MemoryManager revisited.

BlooDHounD тоже использовал эти особенности haXe и создал замену части функционала as3corelib, в своей библиотеке о которой можно почитать в заметке "Тяжёлые алгоритмы на стероидах (MD5, Base64, CRC32, JPEG, PNG)"

2 июн. 2010 г.

Анализ аудитории ВКонтакте (01.06.10) #3

Небольшой анализ аудитории #3.

Результаты, в виде графиков, можно посмотреть у меня на сайте по ссылке:

http://www.you-ra.info/vkstats/

p.s. если интересны другие графики, которые можно построить по данным uid/sex/timezone/has_mobile/rate , то спрашивайте, построю.

p.s.s. рассмотрено 85.281.877 анкет

29 мар. 2010 г.

Selectel сервер - наблюдение за железом(полезные советы).

Немного текста о том, как узнать, что происходит с сервером и
как защитить себя от неприятностей с железом.

Речь пойдёт о Селектеловском выделенном сервере:
Intel Core 2 Duo E8400 3.0 GHz / 6Gb DDRIII / 2 x 500Gb SATA

Подобное будет работать и для остальных, с небольшими изменениями.

1. Установка ОС и внешняя консоль(IP-KVM)

Если по каким либо причинам, вы решили поставить ОС сами, это возможно удалённо.

У серверов есть IP-KVM доступный по ссылке:
https://support.selectel.ru/servers/console.php

IP-KVM представляет собой java приложение, которое отображает то, что вы увидели бы, подключив монитор/клавиатуру/мышь к серверу непосредственно.

т.е. если у вас "поломалась" ОС, это отличный способ узнать, что вообще произошло и попытаться починить.

Помимо прочего, вы можете подключить удалённо любой .iso образ и поставить ОС сами.(в самой ОС этот .iso образ будет доступен как cdrom и usb device)

Удалённо имеется ввиду с вашего компьютера, по-этому если есть желание поставить ОС, то рекомендую использовать разные netinstall iso образы, не превышающие 200мб.

Что бы выбрать устройство для загрузки образа(cdrom а не винчестер), при загрузке сервера нажмите F11 и выберите нужную опцию(предварительно нужно "вставить" .iso образ в виртуальный cdrom нажав на иконку дискетки в углу приложения).

Так же можно с образа протестировать память(RAM), например при помощи http://www.memtest86.com/ .

2. Мониторинг состояния винчестера.

Для мониторинга состояния винчестера используется S.M.A.R.T.

Под Linux/Debian:
smartctl - для ручного мониторинга.
smartd - для автоматического(настраиваемого в /etc/smartd.conf)

В моём случае smartd настроен примерно на следующее:
/dev/sda -a -d sat -o on -S on -s (S/../.././04|L/../../6/05) -m root -M exec /usr/share/smartmontools/smartd-runner

(тоже самое и для /dev/sdb)

т.е. демон каждый день в 4 утра запускает быстрый тест работы винчестера и раз в неделю в 5 утра - длинный.

Если результат плохой, то письмо придёт к пользователю root.
(учитывая /etc/aliases, то к пользователю user)

Естественно можно настроить отправку письма на любой почтовый адрес, не только локальный.

3. Мониторинг сенсоров(под Linux/Debian).

Как оказалось, материнская плата на этом сервере X7SBT.
http://www.supermicro.com/products/motherboard/Xeon3000/X48/X7SBT.cfm

Популярный пакет lm-sensors в моём случае не заработал. Почитав сайт разработчиков, увидел, что для работы Winbond 83627DHG chip, который находится на этой motherboard, необходимо перебирать kernel с несколькими заплатками,
чего мне не хотелось делать.

Однако, на сайте supermicro(выше ссылка), предлагалась утилита Supero Doctor II под Linux.

Скачивается она с их ftp:
ftp://ftp.supermicro.com/utility/Supero_Doctor_II/Linux/Release/

Устанавливается при помощи ./quickinstall (запуск в директории распакованного архива).

После установки работает утилита sdt, которая отображает:

Fan1 Fan Speed
Fan2 Fan Speed
Fan3 Fan Speed
CPU Core Voltage
DIMM Voltage
+12V Voltage
+3.3V Voltage
+5V Voltage
System Temperature
CPU Temperature
Chassis Intrusion
Power Supply Failure

или передавая данные используя SNMP при помощи sd_extension .

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

Прежде чем задавать вопросы или ругаться:
a)Не имею отношения к компании Selectel
б)Не отвечаю за любые неприятности, которые вы можете получить после использования советов.
в)Могу помочь в настройке сервера, консультациях по настройке, тестированию, администрированию и т.п., но только на взаимовыгодных условиях.

4 мар. 2010 г.

Анализ аудитории ВКонтакте (01.03.10) #2

Небольшой анализ аудитории #2.

Результаты, в виде графиков, можно посмотреть у меня на сайте по ссылке:

http://www.you-ra.info/vkstats/

p.s. если интересны другие графики, которые можно построить по данным uid/sex/timezone/has_mobile/rate , то спрашивайте, построю.

p.s.s. рассмотрено 72.352.719 анкет