27.03.2014 Views

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

In addition to the rules, the knowledge base also<br />

has membership functions used in fuzzification and<br />

defuzzification processes of the values of input and output<br />

respectively.<br />

This paper proposes the use of Evolutionary Learning<br />

and Fuzzy Logic to improve the performance of a load<br />

balancer. This assistance is done through the dynamic<br />

modification of the percentage of requests sent to each of<br />

nodes served by the balancer.<br />

With this objective, a module called COGNARE was<br />

built. Its purpose is to perform a dynamic change in the rate<br />

of requests sent to each of the nodes served by a balancer.<br />

The inputs of this module are the current states of the<br />

hardware such as memory, CPU, disk, network, etc.. The<br />

output of this module is the allocation rate for each of the<br />

resource managed by the load balancer.<br />

A sensor agent software [3] was installed in each of<br />

the nodes. Their function is to obtain the values of CPU<br />

load, memory, disk, etc. and send them to COGNARE,<br />

as illustrated in Figure 1. In this Figure, these agents are<br />

represented by black circles.<br />

Initially, the rules needed by fuzzy inference system<br />

were learned. To that end, we sent requests to the balancer,<br />

without using COGNARE. The workload percentages of<br />

each node were changed in order to measure the processing<br />

speed variation of the whole system. This change was made<br />

randomly. After this, CPU and memory use of each node<br />

was measured. Table 1 shows this.<br />

CPU CPU Memory Memory Rate (%)<br />

N 1 (%) N 2 (%) N 1 (%) N 2 (%) N 1 |N 2<br />

64 21 17 19 79|21<br />

53 47 13 22 63|37<br />

7 89 11 52 11|89<br />

87 13 18 13 81|19<br />

Table 1: Table used in learning the rules. Just some of the<br />

values obtained are showed.<br />

The membership functions, illustrated in Figure 2, were<br />

used to fuzzify values of the Table 1. In this Figure, VL, L,<br />

M, H and VH mean very low, low, medium, high and very<br />

high respectively. After this step, we generated Tables 2 and<br />

3.<br />

CPU CPU Memory Memory Rate N 1<br />

N 1 N 2 N 1 N 2<br />

H L L L L<br />

M M L L H<br />

L H L L VH<br />

Table 2: Values in Table 1 fuzzified.<br />

behavior of node 1.<br />

Output refers to the<br />

CPU CPU Memory Memory Rate N 2<br />

N 1 N 2 N 1 N 2<br />

H L L L H<br />

M M L L L<br />

L H L L VL<br />

Table 3: Values in Table 1 fuzzified.<br />

behavior of node 2.<br />

Output refers to the<br />

The initial population was obtained from all possible<br />

fuzzy rules which contain only one linguistic antecedent<br />

value. In this case, as shown in Figure 2, the total quantity<br />

of linguistic terms is 5 (VL, L, M, H and VH). The amount<br />

of linguistic variables is 2 (CPU and memory). Thus, the<br />

initial number of rules is N =5∗ 2=⇒ N =10. For<br />

each initial rule, it was calculated the consequent of their<br />

respective class. The consequent class is also one of the<br />

linguistic terms shown in Figure 2. As an example, if in<br />

Figure 1, the load node C1 is 23%, then the fuzzy linguistic<br />

term will be Low (L). If the load of the node C2 is 52%,<br />

then fuzzy linguistic term will be fuzzy Medium (M).<br />

After applying the technique described by Mansoori [10]<br />

the rules are generated. Table 4 presents some of these rules.<br />

Figure 2: Membership functions used for fuzzify the values in<br />

Table 1.<br />

No. Rule<br />

1 if CPU 1 is LOW and MEMORY 1 is<br />

MEDIUM then RAT E 1 is HIGH<br />

2 if CPU 1 is LOW and CPU 2 is MEDIUM then<br />

RAT E 1 is HIGH<br />

Table 4: Some rules obtained after the learning process.<br />

Starting from the generated rules, we created a Fuzzy<br />

Inference System. The input variables are the values of the<br />

system CPU and memory of each node. The membership<br />

functions and fuzzy sets are described in Figure 2.<br />

When the load balancer is working, COGNARE<br />

constantly run fuzzy inference system. This step<br />

recalculates the working rate of each node served by the<br />

load balancer.<br />

258

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!