em regra geral a mensagem mais rápida a ser executada, a segunda será mais lenta que a primeira e mais rápida que a terceira e sucessivamente até a última mensagem que terá o tempo mais lento dentre todas as que foram executadas. Essa observação leva em consideração o funcionamento dos motores baseados em tarefa. Não existe uma certeza de que qualquer mensagem a ser processada continuará o fluxo, isso pode variar de acordo com a resposta da aplicação que pode não funcionar para a mensagem em questão e funcionar para a seguinte, podendo variar de acordo com a velocidade de escrita e leitura da mensagem na fila, bem como o tamanho da mensagem. Mas se observarmos que as mensagens tenham um tamanho padrão, os demais fatores não são totalmente capazes de influenciar todas as vezes no processamento das mensagens. Assim é viável afirmar que existe a tendencia de acontecer a execução mais rápida das primeiras mensagens em comparação as seguintes.
O makespan como modelo matemático, neste estudo é calculado de duas diferentes formas. A primeira é do ponto de vista de mensagens e tarefas em somatórios diferentes usando a Equação3.1, conforme mostra a Equação3.3. Destaca-se que para cálculo do makespan é levado em conta apenas as mensagens processadas, representadas por MP. Em um situação em que todas mensagens da taxa de entrada (TX) são processadas considera-se no modelo a substituição para TX no lugar de MP.
makespan = PMP i=1 Pn j=1TT(i,j) MP (3.3)
A segunda abordagem omakespan é obtido com o auxílio da Equação3.2, em ambos os modelos é possível captar matematicamente o comportamento do makespan, onde o valor a ser obtido indica o tempo médio que uma mensagem pode levar no processo, na Equação 3.4 pode-se observar esse cálculo. A restrição se aplica as mesmas do modelo anterior.
makespan = PMP
i=1TTM(i)
MP (3.4)
O uso dos modelos aqui apresentados serão importantes para a criação dos que se sucederão nas seções seguintes. Entender o seu comportamento em diferentes configurações de motores será possível depois desta abordagem.
3.2 Modelagem dos Motores de Execução em Pool
Global
30 Capítulo 3. Proposta
o desempenho dos motores foi omakespan, passa-se a analisar que impactos podem interferir diretamente nele.
Ao analisar preliminarmente a dinâmica de execução das tarefas, representadas pela Equação 3.1, nota-se uma fator que pode causar grande impacto no aumento do tempo de execução de cada tarefa e consequentemente do makespan que é a fila de espera, TQ(i,j). Os tempos
de leitura, escrita e de execução, possuem uma tendência de tempo definidos pela característica particular do processador presente na máquina. Considerar estes valores constantes possibilitam a afirmação realizada.
Um modelo de makespan ideal envolve a ideia de que para todas as mensagens que entrarem no processo de integração existam threads
suficientes para realizar a execução. Se acontecer esse fato podemos afirmar que o tempo de espera na fila será de 0. Uma observação disso pode ser vista na Equação3.5.
TT(i,j) = TE(i,j)+ 0 + TL(i,j)+ ET(i,j) (3.5)
O makespan de um processo de integração na qual os tempos de fila são 0, mostra algo simples, pois ele será igual ao tempo de execução da primeira mensagem, isto porque não existindo filas todas as mensagem terão o mesmo tempo de processamento, que por essa óptica seria o cenário perfeito. Na Equação3.6é possível ver o tempo de execução real de uma mensagem sem filas, TTE. Na Equação 3.7 assume-se como makespan perfeito o encontrado em TTE. TTE = n X j=1 TEj+ TLj+ ETj (3.6) makespan = TTE (3.7)
Neste momento é importante refletir sobre os fatores que podem possibilitar a execução do processo de integração de maneira que não existam filas durante a execução. Ao ser observado inicialmente são dois os fatores que impactam no makespan. O primeiro a taxa de entrada de mensagens aliado a quantidade de threads. Se pensarmos que para suprir a demanda é necessário atendermos a estes fatores do caso real é possível propormos o modelo que pode ser observado na Equação 3.8. O tamanho do pool global perfeito é representado por TIP, é importante destacar que a unidade de
3.2. Modelagem dos Motores de Execução em Pool Global 31
tempo de TTE e TX sejam a mesma, por exemplo segundos, para que o modelo capte a real necessidade dethreads.
TIP = TTE ∗ TX (3.8)
Em casos de taxa de entrada de mensagens altas e/ou tempos de execução muito pequenos, podemos encontrar um problema a concorrência dethreads, pois o número a ser encontrado em TPg em uma situação real pode ser extremamente alto e por este excesso causar degradação da performance. Com esta situação é preciso alternativas que observem estas especificidades dasthreads.
Toda a modelagem do comportamento do makespan para pool global obedecendo as características já apresentadas leva em consideração o tempo de execução ideal de uma mensagem (TTE), multiplicado com a taxa de entrada (TX). Juntamente com a taxa é necessário multiplicar o período de tempo (JT) em que a taxa foi injetada na solução. É preciso considerar também a uma constante de tempo de fila (VT) multiplicada ao número de threads
disponíveis (TPg) elevado a uma constante (Px) particular da plataforma de integração que se vai usar. Realizado esta parte precisa-se ainda somar TTE multiplicando a (TX) e a uma constante de ajuste (AT), para particularidades não consideradas, e somar com o produto da degradação da performance (DP) multiplicado ao pool dethreads (TPg). A Equação3.9 demonstra como fica o modelo idealizado e a Equação3.10mostra o modelo simplificado.
makespan = TTE ∗ TX ∗ JT ∗ VT ∗ TPg(Px) + TTE ∗ TX ∗ AT + DP ∗ TPg (3.9) makespan = TIP ∗ JT ∗ VT ∗ TPg(Px)+ TIP ∗ AT + DP ∗ TPg(3.10) Ao analisar o desempenho deste modelo sem considerar a constante DP é possível notar que a tendência do comportamento do makespan é se aproximar do TTE. Ao se confirmar esta hipótese seria encontrado o melhor
makespan, porém é sabido que quanto mais se incrementa threads mais o processador precisa dividir seus núcleos físicos para cada uma das threads
virtuais e isso impacta no desempenho do processamento das tarefas e piorando a performance.
Após essa observação foi considerado então que existindo a coeficiente de degradação e anulando o efeito das threads na primeira exponencial é possível observar uma linha de tendência da degradação da performance. Este efeito pode ser observado na Equação 3.11 e de forma simplificada na
32 Capítulo 3. Proposta
makespan = TIP ∗ JT ∗ VT ∗ TPg(Px/Px)+ TIP ∗ AT + DP ∗ TPg (3.11) makespan = TIP ∗ JT ∗ VT ∗ TPg1+ TIP ∗ AT + DP ∗ TPg (3.12) O uso da Equação 3.9 considerando a constante de degradação (DP) é capaz de analisar o fenômeno. Porém quando se observa a intersecção com a equação Equação 3.12 é possível obter um dado ainda mais interessante do ponto de vista de gestão de recursos computacionais, isto porque uma vez com a intersecção é possível obter exatamente o ponto onde onde asthreads
alcançam seu melhor desempenho. O melhor desempenho está ligado ao fato de produzir um menor makespan, mas também ao fato de ser o primeiro valor e por consequência o menor.
Para isso é preciso igualar as duas equações para encontrar qual valor de TPg as Equações 3.9 e 3.12 possuem o mesmo valor de imagem. É possível observar na Equação3.13como fica esse modelo.
TIP ∗ JT ∗ VT ∗ TPg(Px)+ TIP ∗ AT = TIP ∗ JT ∗ VT ∗ TPg1+ TIP ∗ AT (3.13)
A modelagem do motor de execução para estas características em primeira análise pode ser expressa pelos modelos apresentados. É possível que a constante DP seja desmembrada e pode ser analisada considerando fatores aqui agregados. Considerar que a capacidade de processamento dos processadores, seus núcleos, memória dedicada, entre outros componentes da CPU podem melhorar e ampliar o modelo, mas neste trabalho são fatores considerados como uma única variável e tem um valor de máquina para máquina.