РПЗ (954221), страница 11
Текст из файла (страница 11)
Вариант 1в
Для каждой БД создаем только одну реплику, которая дает наибольший выигрыш в уменьшения суммарного количества обращений ко всем БД.
Таблица 35. Вариант размещения БД и одной их реплики по узлам сети
| БД1 | БД2 | БД3 | БД4 | БД5 | БД6 | БД7 | БД8 | БД9 | БД10 | Оценка |
БД | У4 | У4 | У4 | У4 | У7 | У4 | У7 | У6 | У7 | У2 |
|
Число обращений | 130 | 1273 | 1562 | 78 | 352 | 600 | 240 | 420 | 150 | 182 | 4987 |
Реплики | У3 | У3 | У3 | У6 | У7 | У3 | У5 | У6 | У5 | У3 |
|
Число обращений | -101 | -178 | -133 | -12 | -39 | -112 | -68 | 19 | -10 | -117 | -751 |
Суммарное количество обращений к базам данных в сети снизилось до 0%
-
Аналитическое моделирование сети
-
Формализованная схема и исходные данные рассматриваемой РСОД
-
В соответствии с техническим заданием, моделируем систему, содержащей ПЭВМ, канал и сервер ( два ЦП и диски);
Рис.8. Формализованная схема рассматриваемой PCOD
В схеме используются следующие обозначения
- обслуживающий аппарат, имитирующий дообработку на i-той рабочей станции сети запроса от этой станции к серверу после обработки запроса на сервере
- обслуживающий аппарат, имитирующий формирование запроса от i-той рабочей станции к серверу; (
);
- буфер, имитирующий очередь запросов к каналу;
— обслуживающий аппарат, имитирующий задержку при передаче данных через канал;
- буфер, имитирующий очередь запросов к процессорам;
- обслуживающие аппараты, имитирующие работу процессоров.
- буфер, имитирующий очередь запросов к i-му диску;
- обслуживающий аппарат, имитирующий работу i-го диска.
Р - вероятность обращения запроса к ЦП после обработки на диске. Обслуживание заявок во всех ОА подчиняется экспоненциальному закону.
Таблица 36. Исходные данные аналитической модели
Обозначение | Описание |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 37. Выходные характеристики аналитической модели
Обозначение | Описание |
|
|
|
|
|
|
|
|
Введём следующие обозначения:
lф1 – среднее значение суммарной интенсивности фонового потока запросов, выходящих из ОА, имитирующих работу рабочих станций, в канал
lф1b – среднее значение интенсивности фонового потока запросов, проходящих через ОА, имитирующих работу сервера и дисков, где b=1/(1–р) ;
b - среднее количество проходов запроса по тракту процессор-диски за время одного цикла его обработки в системе.
tк – среднее значение времени обработки запроса в канале передачи данных;
tк=0.5(tк1+ tк2 ).
Где tк1 и tк2 соответственно среднее время передачи запроса по каналу в прямом и обратном направлениях.
-
Порядок расчета рассматриваемой системы методом фонового потока.
Приближённый итерационный алгоритм нахождения значения и выходных характеристик аналитической модели имеет следующий вид:
1. Определяем начальное значение для ф1
К1 принимает значения в диапазоне 0.995…0.99995.
2. Определяем значения Тп и Тд соответственно из выражений (2), (3) и (4).
3. Определяем значение ф из следующего выражения:
4. Определяем относительную погрешность 1 для ф1 1 принимает значения в диапазоне 0.001…0.00001.
Если , то алгоритм завершил работу, и переходим к пункту 6, иначе выполняется следующий пункт алгоритма.
5. Определяем новое приближённое значение для ф1:
К2 принимает значения в диапазоне 10…1000.
После этого переходим к пункту 2 данного алгоритма.
Определяем выходные результаты аналитической модели:
Tреак=T0+Tк+(Tп+Tд) (10)
Tреак=(N-1)/ф–Tр (11)
2=Т/(Tреак+Tр) (12)
pп=2tп/С (13)
pдi=Pi2tд (14)
Предложенная аналитическая модель реализована программно на языке Delphi.
-
Листинг программы.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Math, ExtCtrls, jpeg;
type
TForm2 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
Edit13: TEdit;
Edit14: TEdit;
Edit15: TEdit;
Edit16: TEdit;
Edit17: TEdit;
Edit18: TEdit;
Edit19: TEdit;
Button1: TButton;
Button2: TButton;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Image1: TImage;
Label23: TLabel;
Label24: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
function GetMinimum(f1:real; f2:real; f3:real):real;
function GetPower( f:real;Power:real) :real;
var
Form2: TForm2;
//////////////////////////////////
NPC,NServ:Integer; //кол-во рабочих станций, серверов
MTQueryPC , // время дообработки запроса
MTFormQueryPC , //формирование запроса
MTTChannelDirect , // время передачи в прямом направлении
MTTChannelRevers , //время передачи в обратном направлении
MTQueryServer , //обработка на сервере
Precision : real;
implementation
{$R *.dfm}
function GetMinimum(f1:real; f2:real; f3:real):real;
var Minimum:real;
begin
Minimum := f1;
if (f2 < Minimum)then Minimum := f2;
if (f3 < Minimum)then Minimum := f3;
result:= Minimum;
end;
function GetPower( f:real;Power:real) :real;
var i:Integer;
begin
if Power=0 then result:= 1;
i:= 0;
while i < Power
do
begin
f := f*f;
i:= i+1;
end;
result:= f;
end;
function Calc():bool;
var tcs,T0,Tp,K1,K2,delta1,
Tk,Tc,Lf,B,Lf1,tk_,Ppc,
Pk,Pc,Tcircle,L, Treaction,Delta:real;
C :Integer;
N,IterationNumber :Integer;
begin