+38 (067) 901-63-22

Корзина

0 товара(ов) на сумму
0 грн.

Записи автора Рудюк Сергей

Технология Datasnap в Delphi

Не устраивала меня технология DCom из-за сильной привязки к технологиям Майкрософта... Долго искал альтернативные технологии, кое-что нашел. Но, позже обнаружил, что CodeGear давно перешла данную технологию и выпустила то, что мне нужно - это технологию Datasnap, не привязанную к Com.

По данной технологии есть ряд интересных статей, которые показывают, как можно сделать много-звеньевое приложение. Причем, данное приложение будет работать не только в Windows, но и в других ОС (как минимум под Wine) - проверено.

Ссылки на статьи по данной тематике, которые мне понравились:

- Введение в Datasnap.

- Учебный пример: Многозвенная архитектура DataSnap XE для баз данных.

- Учебный пример: DataSnap XE - обычные объекты в качестве параметров.

- Учебный пример: Жизненный цикл серверных методов.

- Учебный пример: Простой сервис DataSnap XE - калькулятор.

- Учебный пример: DataSnap XE - Callbacks (механизмы обратного вызова).

- DataSnap Server Wizard.

Создание ssl-сертификата:

- Создание SSL сертификатов для связки Apache и mod_ssl (ssl crypt apache mod_ssl).

- Использование OpenSSL (ssl security crypt cert mod_ssl apache imap postfix).

12.05.12, 17:03

Автор сообщения: К2® Рудюк Сергей Анатольевич (Блог К2 - http://corp2.net)

Решение проблемы запуска VMWare на Ubuntu 12.04

По традиции, новая версия Linux Ubuntu 12.04 вышла в срок. И конечно, попросилась обновиться. Забыв о традиционном возникновении проблем с выходом новых версий Linux Ubuntu, я нажал на кнопке обновления и... Перестала работать VMWare.

Начал искать, как проблему решить и к счастью нашел: http://xaxatyxa.ru/_ubuntu/zapuskaetsya-vmware-workstation-ubuntu-12-04.html

Ниже, опишу процесс, что нужно сделать, чтоб заработало, как работало :).

Для начала, посмотрим, что у нас установлено.

Версия Ubuntu:

cat /etc/*release*

DISTRIB_ID=Ubuntu

DISTRIB_RELEASE=12.04

DISTRIB_CODENAME=precise

DISTRIB_DESCRIPTION="Ubuntu 12.04 LTS"

Ядро системы:

uname -r

3.2.0-23-generic-pae

Версия Vmware Workstation:

toor@toor-ls:~$ vmware-installer -l

Product Name Product Version

==================== ====================

vmware-workstation 8.0.2.591240

toor@toor-ls:~$

Устанавливаем патч

wget http://xaxatyxa.ru/download/vmware802fixlinux320.t...

tar xpvf vmware802fixlinux320.tar.gz

sudo ./patch-modules_3.2.0.sh

Должно выдасться:

Запускаемся и соглашаемся с лицензией:

12.05.12, 16:46

Автор сообщения: К2® Рудюк Сергей Анатольевич (Блог К2 - http://corp2.net)

Решение проблем в Wine

1. Установка Wine.

Бывает, в новых версиях Wine исправляются глюки, которые раньше возникали (хотя бывает и наоборот :)). Поэтому, рассмотрим, как установить последнюю версию Wine на Вашем компьютере с Linux Ubuntu 12.04 (взято с http://www.ithowto.ru/662-ustanovka-wine-152-v-ubuntu-12-04.html).

Наши действия:

- Открываем терминал (ctrl+alt+T).

- Добавляем репозитарий с последними версиями Wine.

sudo add-apt-repository ppa:ubuntu-wine/ppa

- Обновляем информацию о источниках приложений в системе:

sudo apt-get update

- Устанавливаем Wine:

sudo apt-get install wine1.5

2. Проблемы с видео-адаптерами Nvidia при работе в Linux Ubuntu.

К сожалению, драйвера от ATI и драйвера от Nvidia крайне "глючные" при работе в операционных системах Linux. Поэтому, Вы можете сталкнуться с проблемой, когда отрисовка 3D на Вашей карточке от Nvidia происходит не достаточно корректно.

Частичное решение данной проблемы - это поставить последнюю версию драйверов, а так же отключить некоторые из возможностей при рисовании в 3D.

Поставить последнюю версию драйверов от Nvidia Вы можете командами:

<strong><code>sudo add-apt-repository ppa:ubuntu-x-swat/x-updates sudo apt-get update sudo apt-get install nvidia-current=295.33-0ubuntu1~precise~xup1
<code>Где в 
nvidia-current=295.33-0ubuntu1~precise~xup1 нужно указать название последней версии драйвера.

3. Установка PlayOnLinux (взято с http://forum.pwonline.ru/showthread.php?t=116339).

Как я отмечал выше, в последних версиях бывает не только решаются какие-то старые проблемы, но и вносятся новые. Поэтому, может понадобиться для определенных приложений использовать определенную версию Wine с определенными библиотеками. В этом Вам поможет пакет PlayOnLinux.

Установить его можно такими командами через консоль:

wget -q "http://deb.playonlinux.com/public.gpg" -O - | sudo apt-key add -
sudo wget http://forum.pwonline.ru/fredirect.p..._maverick.list -O /etc/apt/sources.list.d/playonlinux.list
sudo apt-get update
sudo apt-get install playonlinux

После выполненых команд, у Вас во вкладке меню Игры появится програмка.

Сделаю небольшое отступление. PlayOnLinux это средство надстройки самой главной для насв данной ситуации программы WINE. PlayOnLinux автоматически установит последнюю версию WINE если он у Вас не установлен.

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

Для примера, рассмотрим, как устанавливается 3D-игра Perfect World:

- Запускаем программу PlayOnLinux.

- Во вкладке "Утилиты" выбираем "Управление версиями Wine".

- У нас появится окно с двумя столбцами в левой которой находятся доступные версии, а в правой установленные. Нам надо в левом столбце надо найти версию Wine "1.2.3" (обратите внимание, ТОЛЬКО ЭТУ ВЕРСИЮ!!!) нажимаем на нее и нажимаем стрелку >. После установки закрываем это окно.

- Нажимаем + Установка.

- В появившемся окне в нижнем левом углу есть надпись "Установить программу, отсутствующую в списке".

- Появится другое окно "Manual Installation" нажимаем ДАЛЕЕ.

- Далее нам надо выбрать из списка "Install a program in a new virtual drive" и жмем ДАЛЕЕ.

- У нас появится строка в которой надо дать имя пресета на английстом языке. Я написал "pw". Жмем ДАЛЕЕ.

- Теперь нам надо поставить 2 галки у "Use another version of Wine" и "Install some libraries" Жмем ДАЛЕЕ.

- Вот тут мы воспользуемся тем, за чем мы устанавливали версию Wine 1.2.3 в пункте 6. Если забыли или пропустили возвращаемся к пункту 6. И так первоначально нам предлагают системную версию Wine он пишется "System" а мы выбираем "1.2.3" и жмем ДАЛЕЕ.

- Ждем когда создастся префикс и появится новый список. Это список POL-пакетов. Это плагины PlayOnLinux. Нам надо поставить галки на пакеты "POL_Install_d3dx9", "POL_Install_directx9", "POL_Install_ie6" и "POL_Install_vbrun6" Жмем ДАЛЕЕ.

- Устанавливаем эти пакеты если что-то спрашивает, соглашаемся и все время жмем ДАЛЕЕ или ГОТОВО.

- И так финальный момент. Рядом с полем есть кнопка. Нажимаем и выбираем в Диалоговом окне путь и имя Инсталлера "PW_Setup.exe" (НЕ ЗАБЫВАЕМ, ЧТО PW_Setup-1.bin, PW_Setup-2.bin и PW_Setup-3.bin должны быть в одной папке с инсталлером) нажимаем ДАЛЕЕ.

- Устанавливаем игру как на "ОКНАХ" ИМХО тут пояснять не надо ;-) .

- После установки Вам предложат вытащить иконку на рабочий стол. Если это хотите, то выбираем из списка патчер.

12.05.12, 16:13

Автор сообщения: К2® Рудюк Сергей Анатольевич (Блог К2 - http://corp2.net)

Прогноз цены на недвижимость в 2012 году

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

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

Этому будет способствовать:

- разочарованность в доходности мероприятия 2012 года (цены держали в надежде, что на Евро 2012 помещения продадутся);

- очень низкий уровень покупательской способности населения;

- переизбыток предложений на рынке недвижимости;

- цена на недвижимость в Украине остается очень завышенной (как известно, за стоимость квартиры без отделки и с плохим видом в Киеве можно купить в такого же размера квартиру в Турции с евроремонтом и возле побережья);

- кризис в Европе постепенно дойдет и до Украины;

- ипотечных кредитов практически не выдает, а это значит, что люди покупают квартиры "по средствам";

- разрешительная система значительно упростилась.

Прикладываю графики статистики средних цен на недвижимость (взято с http://www.domik.net/nedvizhimost/ceny-kiev.html).

2 последних месяца:

3 года

5 лет

все время

В этом году получим очередной виток цены вниз, как это было когда дошел до Украины кризис (2008 год). Цены упадут еще вниз, скатившись к более разумным, конкурирующим ценам с недвижимостью в других странах. Разумная цена для недвижимости в таком виде, как она сейчас продается (без отделки) в Киеве - это 500$/кв. м.. Т.е. все, что завышено - это исторически сложившаяся спекулятивная цена.

Даже сейчас уже на рынке встречаются преценденты, когда продавцы спускаются до сравнительно разумных цен. Так, например, в Киеве появляются временами в продаже (и сравнительно быстро раскупаются) предложения на офисы в Киеве с евро-ремонтом по стоимости в 650-850$/кв. м. За такую цену продают те продавцы, которые не готовы ждать годами, пока помещения продадутся и которые хотят продать их в ближайшее время.

Вероятное всего, застройщики, чтоб остаться на рынке вынуждены будут увеличивать качество своей продукции (например, продавая помещения с внутренней отделкой), оптимизировать свои затраты и уменьшать цену на помещения.

12.05.12, 15:20

Автор сообщения: К2® Рудюк Сергей Анатольевич (Блог К2 - http://corp2.net)

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

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

В Linux Вам всего лишь хватит добавить & к команде и она будет выполняться в "фоновом режиме", т.е. закрытие окна терминала на неё не будет влиять. Например:

rar a -r ppp.rar arh_papka &

Так же Вы можете достичь такого результата с помощью команд:

$ screen Ваша команда

после чего +, чтобы сказать detach

и

$ screen -r

чтобы вернуть в нее.

12.05.12, 14:16

Автор сообщения: К2® Рудюк Сергей Анатольевич (Блог К2 - http://corp2.net)

Тестирование скорости сервера в Linux Ubuntu

Заметил, что скорость на сервере все время маленькая - почему-то не превышает 10 Мбит/с, в то время, как должна достигать 100 МБит/с. Долго думал, что это из-за того, что у пользователей маленькая скорость, но... Вот у меня локальный интернет 80МБит/с и скорость все настолько же низкая: 0,8-2Мбит/с.

Начал искать причину. Протестировал локальный интернет на своем компьюетере с помощью сайта http://www.speedtest.net/.

Показатели, конечно, меньше 80МБит/с, но в целом - выше на порядок, чем между сервером и локальным компьютером: 20-40Мбит/с...

Как же протестировать сервер ?

Как оказалась, есть такая замечательная команда iperf.

Устанавливаем iperf на сервере:

apt-get install iperf

На клиентском компьютере, если он под Linux выполняем тоже данную команду. В случае же Windows ставим версию для Винды:

http://iperf.ru/wp-content/uploads/2009/07/jperf-2.0.0.zip

Теперь, запускаем на сервере сервис:

iperf -s

Выполняем на клиенте:

iperf -c НазваниеВашегоСервера -P 20

Расшифровка ключей.

-с - указывает на компьютер с которым происходит передача данными.

-P - указывает на количество потоков, которые используются при передаче данных (в нашем случае - 20 потоков).

------------------------------------------------------------

Client connecting to corp2.net, TCP port 5001

TCP window size: 8.00 KByte (default)

------------------------------------------------------------

[1760] local 192.168.0.99 port 27951 connected with 77.88.252.136 port 5001

[1696] local 192.168.0.99 port 27955 connected with 77.88.252.136 port 5001

[1664] local 192.168.0.99 port 27957 connected with 77.88.252.136 port 5001

[1808] local 192.168.0.99 port 27948 connected with 77.88.252.136 port 5001

[1792] local 192.168.0.99 port 27949 connected with 77.88.252.136 port 5001

[1632] local 192.168.0.99 port 27959 connected with 77.88.252.136 port 5001

[1840] local 192.168.0.99 port 27946 connected with 77.88.252.136 port 5001

[1776] local 192.168.0.99 port 27950 connected with 77.88.252.136 port 5001

[1600] local 192.168.0.99 port 27961 connected with 77.88.252.136 port 5001

[1552] local 192.168.0.99 port 27964 connected with 77.88.252.136 port 5001

[1728] local 192.168.0.99 port 27953 connected with 77.88.252.136 port 5001

[1568] local 192.168.0.99 port 27963 connected with 77.88.252.136 port 5001

[1744] local 192.168.0.99 port 27952 connected with 77.88.252.136 port 5001

[1712] local 192.168.0.99 port 27954 connected with 77.88.252.136 port 5001

[1680] local 192.168.0.99 port 27956 connected with 77.88.252.136 port 5001

[1648] local 192.168.0.99 port 27958 connected with 77.88.252.136 port 5001

[1616] local 192.168.0.99 port 27960 connected with 77.88.252.136 port 5001

[1856] local 192.168.0.99 port 27945 connected with 77.88.252.136 port 5001

[1824] local 192.168.0.99 port 27947 connected with 77.88.252.136 port 5001

[1584] local 192.168.0.99 port 27962 connected with 77.88.252.136 port 5001

[ ID] Interval Transfer Bandwidth

[1792] 0.0-10.0 sec 120 KBytes 98.1 Kbits/sec

[1824] 0.0-10.0 sec 360 KBytes 294 Kbits/sec

[1696] 0.0-10.1 sec 184 KBytes 149 Kbits/sec

[1664] 0.0-10.2 sec 152 KBytes 123 Kbits/sec

[1712] 0.0-10.2 sec 48.0 KBytes 38.6 Kbits/sec

[1808] 0.0-10.3 sec 696 KBytes 556 Kbits/sec

[1616] 0.0-10.3 sec 40.0 KBytes 31.8 Kbits/sec

[1760] 0.0-10.7 sec 448 KBytes 342 Kbits/sec

[1584] 0.0-10.7 sec 320 KBytes 245 Kbits/sec

[1776] 0.0-14.1 sec 32.0 KBytes 18.5 Kbits/sec

[1600] 0.0-14.1 sec 32.0 KBytes 18.5 Kbits/sec

[1840] 0.0-14.2 sec 48.0 KBytes 27.8 Kbits/sec

[1552] 0.0-14.1 sec 32.0 KBytes 18.5 Kbits/sec

[1632] 0.0-15.2 sec 56.0 KBytes 30.3 Kbits/sec

[1648] 0.0-18.1 sec 40.0 KBytes 18.2 Kbits/sec

[1568] 0.0-18.1 sec 32.0 KBytes 14.5 Kbits/sec

[1856] 0.0-18.1 sec 40.0 KBytes 18.1 Kbits/sec

[1680] 0.0-23.0 sec 40.0 KBytes 14.3 Kbits/sec

[1728] 0.0-23.1 sec 40.0 KBytes 14.2 Kbits/sec

[1744] 0.0-23.1 sec 40.0 KBytes 14.2 Kbits/sec

[ ID] Interval Transfer Bandwidth

[SUM] 0.0-23.1 sec 2.73 MBytes 993 Kbits/sec

Как видите, скорость и вправду далека от 100МБит/сек. и в нашем случае составила всего 993 КБит/сек...

После того, как обратились к провайдеру, оказалось, что "не правильно срабатывал шейпер". После снятия его, результаты кардинально улучшились:

------------------------------------------------------------

Client connecting to srv1.corp2.net, TCP port 5001

TCP window size: 8.00 KByte (default)

------------------------------------------------------------

[1824] local 192.168.0.99 port 28769 connected with 77.88.252.135 port 5001

[1552] local 192.168.0.99 port 28786 connected with 77.88.252.135 port 5001

[1840] local 192.168.0.99 port 28768 connected with 77.88.252.135 port 5001

[1856] local 192.168.0.99 port 28767 connected with 77.88.252.135 port 5001

[1808] local 192.168.0.99 port 28770 connected with 77.88.252.135 port 5001

[1632] local 192.168.0.99 port 28781 connected with 77.88.252.135 port 5001

[1776] local 192.168.0.99 port 28772 connected with 77.88.252.135 port 5001

[1760] local 192.168.0.99 port 28773 connected with 77.88.252.135 port 5001

[1744] local 192.168.0.99 port 28774 connected with 77.88.252.135 port 5001

[1792] local 192.168.0.99 port 28771 connected with 77.88.252.135 port 5001

[1712] local 192.168.0.99 port 28776 connected with 77.88.252.135 port 5001

[1728] local 192.168.0.99 port 28775 connected with 77.88.252.135 port 5001

[1696] local 192.168.0.99 port 28777 connected with 77.88.252.135 port 5001

[1664] local 192.168.0.99 port 28779 connected with 77.88.252.135 port 5001

[1600] local 192.168.0.99 port 28783 connected with 77.88.252.135 port 5001

[1680] local 192.168.0.99 port 28778 connected with 77.88.252.135 port 5001

[1648] local 192.168.0.99 port 28780 connected with 77.88.252.135 port 5001

[1568] local 192.168.0.99 port 28785 connected with 77.88.252.135 port 5001

[1616] local 192.168.0.99 port 28782 connected with 77.88.252.135 port 5001

[1584] local 192.168.0.99 port 28784 connected with 77.88.252.135 port 5001

[ ID] Interval Transfer Bandwidth

[1568] 0.0-10.1 sec 1.77 MBytes 1.47 Mbits/sec

[1744] 0.0-10.1 sec 1.08 MBytes 893 Kbits/sec

[1616] 0.0-10.2 sec 1.55 MBytes 1.27 Mbits/sec

[1680] 0.0-10.2 sec 704 KBytes 564 Kbits/sec

[1584] 0.0-10.2 sec 1.91 MBytes 1.57 Mbits/sec

[1856] 0.0-10.2 sec 1.20 MBytes 981 Kbits/sec

[1552] 0.0-10.2 sec 904 KBytes 723 Kbits/sec

[1760] 0.0-10.2 sec 1.51 MBytes 1.24 Mbits/sec

[1792] 0.0-10.2 sec 1.26 MBytes 1.03 Mbits/sec

[1712] 0.0-10.2 sec 1.70 MBytes 1.39 Mbits/sec

[1776] 0.0-10.2 sec 1.26 MBytes 1.03 Mbits/sec

[1648] 0.0-10.2 sec 1.14 MBytes 938 Kbits/sec

[1728] 0.0-10.2 sec 1.32 MBytes 1.08 Mbits/sec

[1808] 0.0-10.2 sec 1.05 MBytes 858 Kbits/sec

[1824] 0.0-10.3 sec 1.51 MBytes 1.23 Mbits/sec

[1696] 0.0-10.3 sec 1.70 MBytes 1.39 Mbits/sec

[1600] 0.0-10.3 sec 1.75 MBytes 1.43 Mbits/sec

[1840] 0.0-10.3 sec 1.44 MBytes 1.17 Mbits/sec

[1664] 0.0-10.3 sec 1.34 MBytes 1.09 Mbits/sec

[1632] 0.0-11.4 sec 1.67 MBytes 1.23 Mbits/sec

[ ID] Interval Transfer Bandwidth

[SUM] 0.0-11.4 sec 27.7 MBytes 20.4 Mbits/sec

А между серверами внутри провайдера достигает практически максимум (раньше было до 2 МБит/с):

iperf -c srv1.corp2.net -P 20

------------------------------------------------------------

Client connecting to srv1.corp2.net, TCP port 5001

TCP window size: 16.0 KByte (default)

------------------------------------------------------------

[ 19] local 77.88.252.136 port 42503 connected with 77.88.252.135 port 5001

[ 8] local 77.88.252.136 port 42485 connected with 77.88.252.135 port 5001

[ 9] local 77.88.252.136 port 42484 connected with 77.88.252.135 port 5001

[ 3] local 77.88.252.136 port 42487 connected with 77.88.252.135 port 5001

[ 6] local 77.88.252.136 port 42486 connected with 77.88.252.135 port 5001

[ 5] local 77.88.252.136 port 42488 connected with 77.88.252.135 port 5001

[ 7] local 77.88.252.136 port 42489 connected with 77.88.252.135 port 5001

[ 10] local 77.88.252.136 port 42490 connected with 77.88.252.135 port 5001

[ 4] local 77.88.252.136 port 42492 connected with 77.88.252.135 port 5001

[ 13] local 77.88.252.136 port 42491 connected with 77.88.252.135 port 5001

[ 11] local 77.88.252.136 port 42493 connected with 77.88.252.135 port 5001

[ 14] local 77.88.252.136 port 42494 connected with 77.88.252.135 port 5001

[ 12] local 77.88.252.136 port 42495 connected with 77.88.252.135 port 5001

[ 16] local 77.88.252.136 port 42496 connected with 77.88.252.135 port 5001

[ 15] local 77.88.252.136 port 42498 connected with 77.88.252.135 port 5001

[ 18] local 77.88.252.136 port 42497 connected with 77.88.252.135 port 5001

[ 17] local 77.88.252.136 port 42499 connected with 77.88.252.135 port 5001

[ 21] local 77.88.252.136 port 42500 connected with 77.88.252.135 port 5001

[ 22] local 77.88.252.136 port 42501 connected with 77.88.252.135 port 5001

[ 20] local 77.88.252.136 port 42502 connected with 77.88.252.135 port 5001

[ ID] Interval Transfer Bandwidth

[ 4] 0.0-10.0 sec 7.79 MBytes 6.53 Mbits/sec

[ 10] 0.0-10.0 sec 8.04 MBytes 6.73 Mbits/sec

[ 14] 0.0-10.0 sec 6.90 MBytes 5.77 Mbits/sec

[ 13] 0.0-10.0 sec 8.16 MBytes 6.81 Mbits/sec

[ 15] 0.0-10.0 sec 7.19 MBytes 6.00 Mbits/sec

[ 18] 0.0-10.1 sec 7.20 MBytes 6.00 Mbits/sec

[ 21] 0.0-10.1 sec 7.34 MBytes 6.12 Mbits/sec

[ 7] 0.0-10.1 sec 2.73 MBytes 2.27 Mbits/sec

[ 11] 0.0-10.1 sec 7.27 MBytes 6.04 Mbits/sec

[ 3] 0.0-10.1 sec 10.6 MBytes 8.83 Mbits/sec

[ 5] 0.0-10.1 sec 2.95 MBytes 2.45 Mbits/sec

[ 17] 0.0-10.1 sec 7.20 MBytes 5.96 Mbits/sec

[ 6] 0.0-10.2 sec 9.50 MBytes 7.85 Mbits/sec

[ 20] 0.0-10.2 sec 2.42 MBytes 1.99 Mbits/sec

[ 12] 0.0-10.2 sec 7.15 MBytes 5.88 Mbits/sec

[ 22] 0.0-10.2 sec 2.22 MBytes 1.82 Mbits/sec

[ 8] 0.0-10.3 sec 2.37 MBytes 1.93 Mbits/sec

[ 9] 0.0-10.3 sec 3.23 MBytes 2.62 Mbits/sec

[ 16] 0.0-10.4 sec 4.59 MBytes 3.69 Mbits/sec

[ 19] 0.0-10.4 sec 2.66 MBytes 2.13 Mbits/sec

[SUM] 0.0-10.4 sec 118 MBytes 94.4 Mbits/sec

94,4 Мбит/с - это отличный показатель!

12.05.12, 14:03

Автор сообщения: К2® Рудюк Сергей Анатольевич (Блог К2 - http://corp2.net)

Не правильное опредение параметров монитора Linux Ubuntu при работе через KVM

Возникла проблема при работе на серверах через KVM. Как оказалось, при подключении через KVM Linux Ubuntu определяла монитор, как 100Hz и с большим разрешением. В результате, вместо того, чтоб изображение транслировалось KVM - видим черный экран. Это привело к тому, что если доступа нет через интернет (например, не произошло подключение к сети), то сервер становится не управляемым, т.к. через KVM войти в систему не получается - выводится черный экран...

При анализе данной ситуации было установлено, что у нас в системе нет файла с настройками для монитора по-умолчанию. Отсутствовал вообще файл /etc/X11/xorg.conf

Поэтому, решение данного вопроса - это установка разрешения по умолчанию в файле /etc/X11/xorg.conf (который понадобилось создать).

Section "Monitor"

Identifier "My Monitor"

HorizSync 31.5 - 50.0

VertRefresh 40-90

EndSection

Section "Screen"

Identifier "Default Screen"

Monitor "My Monitor"

DefaultDepth 24

Subsection "Display"

Depth 24

Modes "1024x768"

ViewPort 0 0

EndSubsection

EndSection

21.01.12, 12:11

Оптимизация веб-сервера

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

1. Оптимизация CMS-системы.

Как было показано опытами, которые я проводил несколько лет назад, наибольшая скорость загрузки и пропускная система - у статических файлов. Скорость cms-систем и статических файлов отличается в 1000-10 000 раз. Причем, это еще сильней сказывается при применении системы веб-сервера NGinx.

Зная это, я переработал систему кеширования в нашей cms-системе Корпорация 2 таким образом, чтоб генерировался статический сайт из динамического содержимого. Это дало значительный прирост скорости и значительное уменьшение нагрузки на сервере.

2. Оптимизация работы веб-сервера. Связка Apache-Nginx.

Мы давно практикуем систему 2-х уровневого веб-сервера. Эта система дает устойчивость к большому количеству посещений, и как результат - скорость работы веб-сервера.

3. Оптимизация работы базы данных. Связка PostgreSQL-PGBouncer.

Связка о которой многие забывают, но которая просто необходима при большом количестве работающих пользователей в online. Эта связка прекрасно себя проявила и сейчас реально у нас реально выдерживается более 500 пользователей в online. Причем, есть возможность выдерживать еще гораздо большие нагрузки!

4. Оптимизация работы с файлами Nginx.

Если не правильно настроить Nginx, то он будет загружать не нужной работой Apache. Поэтому, мы настроили Nginx так, чтоб он как можно реже переводил управление на Apache. В идеале - работая вообще без Apache!

5. Системы кеширования PHP. Остановились на xCache.

Значительное время веб-сервера тратится на компиляцию PHP-кода. Поэтому, я решил установить систему кеширования PHP-кода. Рассматривая ряд вариантов остановился на xCache. Но, ниже дам выдержки из статей для настройки нескольких разных систем кеширования php-кода. Может, в некоторых случаях, они будут более эффективны...

По настройке админки xcache, советую прочитать документацию: http://xcache.lighttpd.net/wiki/InstallAdministrat...

Установка и настройка xCache

Оптимизация работы вебсерверов, ускорение их работы тема очень интересная, возможности развернуться в этой области предостаточно, инструментов тоже хватает. XCache относится к средствам ускорения работы PHP. Устанавливается XCache как дополнительный модуль PHP и служит для кеширования результатов выполнения скриптов в шаред мемори. По сравнению с eAccelerator, XCache показывает более ощутимые результаты, но в проектах, где объемы кеша очень большие – не совсем подходит. Все таки оперативная память не бесконечна. Установим XCache из портов:

cd /usr/ports/www/xcache/

make install clean

При установке доступен диалог настройки сборки, с единственным пунктом Enable code coverage dumper, по умолчанию она включена и служит для определения.предотвращения переполнения памяти.

По окончании установки, нужно скопировать файл настройки xcache.ini в /usr/local/etc/php/:

cp /usr/local/share/examples/xcache/xcache.ini /usr/local/etc/php/

и немного исправить.

У меня получился такой файл настроек:

[xcache-common]

extension = xcache.so

#Включим админ интерфейс

[xcache.admin]

xcache.admin.enable_auth = On

xcache.admin.user = "admin"

#В качестве пароля укажем md5 хеш, создать его можно с

#помощью команды md5 -s "ваш пароль"

xcache.admin.pass = "XXXXXX"

[xcache]

xcache.shm_scheme = "mmap"

#Выделим для кеша 128 мегабайт

xcache.size = 128M

xcache.count = 1

xcache.slots = 8K

xcache.ttl = 0

xcache.gc_interval = 0

xcache.var_size = 0M

xcache.var_count = 1

xcache.var_slots = 8K

xcache.var_ttl = 0

xcache.var_maxttl = 0

xcache.var_gc_interval = 300

xcache.test = Off

xcache.readonly_protection = Off

xcache.mmap_path = "/dev/zero"

xcache.coredump_directory = ""

xcache.cacher = On

xcache.stat = On

xcache.optimizer = On

[xcache.coverager]

xcache.coverager = On

xcache.coveragedump_directory = ""

Настройка самого XCache закончена, остается сделать доступным админ интерфейс. Для этого я у себя скопировал /usr/local/share/examples/xcache/admin в документ рут своего вебсервера www.hilik.org.ua

После этого админ интерфейс станет доступным по URL http://www.hilik.org.ua/admin/

Конечно через этот интерфейс доступна только статистика, но все равно, это полезная функция.

Да и авторизация определена вами в xcache.ini.

Взято на сайте http://www.hilik.org.ua

Установка Eaccelerator

PHP — язык интерпретируемый. Это значит, что каждый раз, когда происходит вызов скрипта на этом языке, запускается PHP-интерпретатор, который проводит полный анализ исходного кода. Причем, если спустя секунду произойдет второй запуск того же скрипта, вся процедура будет повторена заново. Это нерациональное использование ресурсов, поэтому мы применим инструмент под названием eAccelerator, который скомпилирует исходные тексты PHP в двоичное представление, оптимизирует их и будет бережно хранить в оперативной памяти для более быстрого доступа. Благодаря только этому скорость обработки PHP-скриптов вырастет в десятки раз (подтверждено тестами).

Пакета eAccelerator нет в репозиториях популярных дистрибутивов, поэтому его придется собрать самостоятельно. Сначала устанавливаем необходимые для сборки утилиты:

$ sudo apt-get install php5-dev build-essential

Далее получаем исходные тексты eAccelerator:

$ cd /tmp/

$ wget http://bart.eaccelerator.net/source/0.9.6.1/

eaccelerator-0.9.6.1.tar.bz2

$ tar xvjf eaccelerator-0.9.6.1.tar.bz2

$ cd eaccelerator-0.9.6.1

$ phpize

$ ./configure --enable-eaccelerator=shared

$ make

$ sudo make install

Создаем каталог для хранения кэша:

$ sudo mkdir -p /var/cache/eaccelerator

$ sudo chmod 0777 /var/cache/eaccelerator

И, наконец, подключаем eAccelerator к PHP (добавить в начало файла):

# vi /etc/php5/apache2/php.ini

[PHP]

; Подключаем расширение

extension = "eaccelerator.so"

eaccelerator.enable = "1"

; Максимальный размер дискового кэша (Мб)

eaccelerator.shm_size = "64"

; Каталог для хранения кэша

eaccelerator.cache_dir = "/var/cache/eaccelerator"

; Включаем оптимизатор кода

eaccelerator.optimizer = "1"

; Перекомпилировать модифицированные скрипты

eaccelerator.check_mtime = "1"

; Отключаем режим отладки

eaccelerator.debug = "0"

; Кэшировать все файлы (пустой фильтр)

eaccelerator.filter = ""

; Неограниченный размер кэша в памяти

eaccelerator.shm_max = "0"

; В случае отсутствия места в кэше удалять объекты старше

1 часа (3600 секунд)

eaccelerator.shm_ttl = "3600"

eaccelerator.shm_prune_period = "0"

; Кэшировать данные и в памяти, и на диске

eaccelerator.shm_only = "0"

; Сжимать кэшированные данные с максимальным уровнем компрессии

eaccelerator.compress = "1"

eaccelerator.compress_level = "9"

Установка APC

Статья по адресу: http://phpcoder.ws/2009-02/apc-setup.html

APC (Alternative PHP Caching – это Альтернативный ПХП Кешер, руководство по использованию на английском языке). Входит в число трех наиболее популярных способов кеширования опкодов для выполненных php скриптов. Его ближайшими конкурентами являются XCache и eAccelerator. О последнем я уже писал недавно на этом блоге, а статья об XCache, который имеет несколько очень существенных преимуществ перед конкурентами, будет опубликована здесь в ближайшее время. Короче говоря, APC это еще один способ повысить быстродействие вашего сайта в том случае если он расположен на вашем сервере, вы являетесь админом своего хостинга и вас волнуют вопросы быстродействия размещенных на нем сайтов…

Установка APC

Одним из основных преимуществ APC является его простота установки. Если вы являетесь пользователем Debian/Ubuntu, то вполне вероятно что для установки вам будет достаточно набрать в консоли команду sudo aptitude install php-apc или установить этот пакет через synaptic. Если вы используете другой дистрибутив, или по какой-то причине не можете установить “родной” deb-пакет, то у вас есть другой путь – установка из PECL. Для этого нужно набрать команду: sudo pecl install apc, которая скачает нужные архивы из сети, распакует, откомпилирует и установит полученный файл apc.so в нужную директорию.

Проверка установки APC

Во-первых, проверьте что строчка загрузки расширения extension=apc.so действительно прописалась в php.ini (или создан файл apc.ini с этой строчкой в папке с конфигами расширений php – зависит от вашего дистрибутива. Для Debian, например, этой папкой будет /etc/php5/apache2/conf.d/

Если строчка успешно найдена/добавлена, то перезапускаем сервер apache и переходим к проверке самого расширения. Для этого находим папку в которую было установлено расширение. В этой папке будет лежать файл apc.php (файл так же можно взять в архиве установки), копируем его в public директорию любого из сайтов на этом веб-сервере и заходим браузером по адресу http://сайт/apc.php. Если расширение было установлено корректно, то вы увидите на загруженной странице статистику по APC (скриншоты приведены ниже).

Общая информация об APC

Общая информация об APC

Подробная информация об APC

Подробная информация об APC

Информация о хосте

Информация о хосте

Замеры изменения производительности

Для проверки была выбрана CMS Joomla1.5.9 с демонстрационным набором данных после установки и с шаблоном дизайна по умолчанию. При тестировании производительности при помощи утилиты ab2 (было выполнено 1000 обращений к главной странице сайта в 5 потоков) скорость генерации страниц увеличилась на 40%

Недостатки APC

Объективности ради отмечу и недостатки APC…

* отсутствует поддержка FastCGI

* кеширование работает только с модулем apache mod_php (в режиме cli ускорения не будет)

* работает с версиями PHP<=5.2 С версией 5.3 отмечаются проблемы, а что касается 6.0 - будущее совсем туманно. Возможно какой-то механизм кеширования будет интегрирован в само ядро...

Заключение

По-моему стоит установить APC на своем веб-сервере и попробовать – подойдет ли оно именно вам. Несмотря на ряд описанных выше ограничений APC считается наиболее надежным из тройки основных реализаций кеширования для языка PHP…

29.01.11, 12:43

Удаленное администрирование серверов Linux Ubuntu в графическом режиме

В linux есть возможность администрировать сервера как через текстовый терминал (используя ssh2), так и в графическом режиме. Причем, в графическом режиме Вы можете редактировать, как текущий рабочий стол (основной дисплей на сервере), так и пользуясь виртуальным дисплеем.

Я использую для удаленного администрирования в графическом режиме 2 серверных приложения:

x11vnc - позволяет удаленно работать с текущим монитором.

vnc4server - позволяет работать с отдельными виртуальными монторами. При этом, дисплей с номером 0 - это текущий монитор компьютера.

21.01.12, 12:10

Попытка взлома брутфорсом

Время от времени производятся попытки взломать наши сервера или сервисы. Так, например, вчера-сегодня с одного из серверов происходит попытка взлома брутфорсом по 80 порту.

Вот логи nginx:

72.55.148.21 - - [30/Aug/2011:08:44:26 +0300] "GET //admdb/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:26 +0300] "GET //!mysql/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:27 +0300] "GET //phpma1/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:27 +0300] "GET //adminsql/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:27 +0300] "GET //madm/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:28 +0300] "GET //ladminadminl/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:29 +0300] "GET //myad/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:32 +0300] "GET //PmA/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:33 +0300] "GET //phpMyAdmin-2.11.5.1-all-languages/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:33 +0300] "GET //phpmyadmin_2.10/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:33 +0300] "GET //phpmyadmin2011/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:33 +0300] "GET //phpmyadmin211/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:37 +0300] "GET //phpMyAdmin211/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:37 +0300] "GET //pma2011/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:37 +0300] "GET //pma211/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:38 +0300] "GET //db2011/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:38 +0300] "GET //db211/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:38 +0300] "GET //dbadmin2011/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:41 +0300] "GET //php2011/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:42 +0300] "GET //php211/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:42 +0300] "GET //_sql/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:42 +0300] "GET //sql2011/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:43 +0300] "GET //sql211/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:43 +0300] "GET //phpadmin2011/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:43 +0300] "GET //phpadmin211/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:43 +0300] "GET //mysql2011/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:44 +0300] "GET //mysql211/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:44 +0300] "GET //phpM/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:44 +0300] "GET //phpMyAdmin.life/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:45 +0300] "GET //pma_2/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:45 +0300] "GET //phpMyAdmini/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:45 +0300] "GET //phpmysql/sql/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:45 +0300] "GET //pma_ai/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:46 +0300] "GET //mygoodadmin/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:46 +0300] "GET //wp-pma-mod/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:46 +0300] "GET //phpMyAdmin-old/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:47 +0300] "GET //phpma/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:47 +0300] "GET //madm/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:47 +0300] "GET //php_jibin/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:47 +0300] "GET //db_my/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:48 +0300] "GET //data_admin/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:48 +0300] "GET //phpMyAdmin-2.11.1/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:48 +0300] "GET //rootsql/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:48 +0300] "GET //rcsu_mydb/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

72.55.148.21 - - [30/Aug/2011:08:44:49 +0300] "GET //phpMyAdmin-2.11.9.6/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

Как видно, злоумышленник пытается найти учтановочные скрипты phpmyadmin для того, чтоб через них произвести взлом системы. Большим количеством обращений такой "взлом" способен "положить" веб-сервер и базу данных (конечно, если не предприяняты соответствующие меры защиты).

21.01.12, 12:10