Fragmentação de Memória em Sistemas Linux

July 25, 2017 | Autor: David Beserra | Categoria: Operating Systems, Internet
Share Embed


Descrição do Produto

V Escola Regional de Inform´atica de Mato Grosso - 2014

p. 117

Fragmentac¸a˜ o de Mem´oria em Sistemas Linux Felipe Oliveira1 , Daniel Costa1 , Glaydson Vale1 , David Beserra1 , Jean Araujo1,2 1

Unidade Acadˆemica de Garanhuns - UAG Universidade Federal Rural de Pernambuco - UFRPE 2

Centro de Inform´atica - CIn Universidade Federal de Pernambuco – Recife – PE – Brasil {flpdias14, danielalves1995cm, glaydson.gmv, dw.beserra}@gmail.com [email protected]

Abstract. This paper describes the use of Systemtap tool for search memory fragmentation occurrences in Linux, while accessing YouTube videos. Systemtap enables dynamic instrumentation of the Linux kernel, allowing multiple tests to be performed at runtime and user-friendly way. It was observed that the biggest cause of occurrence of fragmentation was the Flash Player Resumo. Este artigo descreve o uso da ferramenta Systemtap na busca por ocorrˆencias de fragmentac¸a˜ o de mem´oria em Linux durante o acesso a v´ıdeos do YouTube. O Systemtap permite a instrumentalizac¸a˜ o dinˆamica do kernel de sistemas Linux, possibilitando que v´arios testes sejam realizados em tempo de execuc¸a˜ o e de maneira amig´avel ao usu´ario. Foi observado que o maior causador de ocorrˆencias de fragmentac¸a˜ o foi o Flash Player.

1. Introduc¸a˜ o Com o crescente n´umero de aplicac¸o˜ es dispon´ıveis para os usu´arios, tornou-se comum se deparar com softwares que acarretam em problemas que envolvam uso indevido dos recursos computacionais. Dentre os problemas que se pode perceber, existem aqueles relacionados a` m´a utilizac¸a˜ o de mem´oria, que e´ um recurso escasso e valioso. O uso eficiente da mem´oria impacta no desempenho de um sistema computacional. Durante a execuc¸a˜ o de um software, s˜ao realizadas v´arias alocac¸o˜ es e liberac¸o˜ es de espac¸os na mem´oria. Com o decorrer destas operac¸o˜ es, pequenos espac¸os de mem´oria podem vir a se tornar inutiliz´aveis, o que e´ chamado de fragmentac¸a˜ o de mem´oria. A fragmentac¸a˜ o da mem´oria e´ um dos efeitos do envelhecimento de software, um fenˆomeno que provocando perdas significativas de desempenho, al´em de erros e travamentos do sistema [Grottke et al. 2008]. E´ dif´ıcil identificar os efeitos da fragmentac¸a˜ o de mem´oria, sendo fundamental monitorar constantemente o sistema. Devem-se utilizar t´ecnicas que permitam monitorar os aspectos do sistema que se deseja observar, sem interferir em seu funcionamento [Lilja 2000]. Com o intuito de manter a disponibilidade e o bom funcionamento de tais sistemas essas pr´aticas se mostram essenciais, tanto para optimizac¸o˜ es de desempenho quanto para a detecc¸a˜ o de erros. Esse trabalho investigou as ocorrˆencias de fragmentac¸a˜ o de mem´oria no sistema operacional Linux durante o acesso a streams de v´ıdeo por um navegador web. Durante os experimentos foi utilizado o Systemtap [SystemTap 2014], uma ferramenta que permite a instrumentalizac¸a˜ o dinˆamica de kernels Linux. Como resultados obtidos, s˜ao contabilizadas as ocorrˆencias de fragmentac¸a˜ o disparadas pelo kernel, mostrando a efic´acia dessa estrat´egia.

UFMT - Ciˆencia da Computa¸ca˜o - Barra do Gar¸cas/MT

ISSN: 2179-1953

V Escola Regional de Inform´atica de Mato Grosso - 2014

p. 120

˜ do SystemTap - adaptado de [Prasad et al. 2005] Figura 3. Passos de execuc¸ao

4. Estudo experimental Para verificar a efic´acia da ferramenta em monitorar o kernel do Linux, foi realizado um experimento onde buscou-se detectar eventos de fragmentac¸a˜ o de mem´oria. Foi realizada uma simulac¸a˜ o do uso de um navegador de internet, onde aplicou-se uma carga de trabalho para simular as requisic¸o˜ es do usu´ario. De fato, a estrat´egia de monitoramento n˜ao se restringe somente a` s aplicac¸o˜ es web, podendo ser aplicada em qualquer outro tipo de sistema, como editores de texto, jogos, etc. Contudo, a escolha do cen´ario de testes se deu em raz˜ao de que os recursos multim´ıdia s˜ao muito utilizados na Internet, afetando, portanto, milh˜oes de usu´arios.

4.1. Ambiente de testes Foi utilizado no experimento um computador com processador AMD Athlon II X2 3.00 GHz e 2 GB de mem´oria principal. O SO utilizado foi o CentOS 6.5, kernel 2.6.32-431.el6. O navegador utilizado foi o Mozilla Firefox vers˜ao 24.2.0 junto com o Adobe Flash Player 11.2.202.332. A carga de trabalho foi automatizada com o conjunto de ferramentas Selenium IDE [Selenium 2014] para testes funcionais, extens˜ao do Firefox que simula ac¸o˜ es do usu´ario como cliques e digitac¸a˜ o de textos na p´agina testada. As ac¸o˜ es que ser˜ao executadas s˜ao geradas para uma linguagem nativa, mas o script que tamb´em pode ser exportado para linguagens de programac¸a˜ o como Ruby, C#, Java ou Python. O script gerado para o teste foi exportado para a linguagem Python para facilitar a execuc¸a˜ o do experimento. O arquivo que inicializa o teste e´ executado uma u´ nica vez quando o monitoramento e´ iniciado. A Figura 4 ilustra o workload utilizado no experimento, que simulou o acesso e a visualizac¸a˜ o de v´ıdeos do YouTube [Google 2014]. Inicialmente realizou-se uma pesquisa de v´ıdeos utilizando a palavra-chave “Cold Play”. O primeiro resultado foi selecionado e, ap´os 30 segundos, foi selecionado outro v´ıdeo (clicando e visualizando) at´e completar um ciclo de 5 visualizac¸o˜ es. Ao fim de cada ciclo, retornava-se a` p´agina inicial do site. Aguardou-se mais trinta segundos e um novo ciclo foi iniciado. O intervalo de trinta segundos entre dois ciclos serve para garantir que a u´ ltima instruc¸a˜ o do script fosse executada. O workload foi executado indefinidamente at´e o final do experimento quando encerrou-se o monitoramento. Para verificar a ocorrˆencia de fragmentac¸a˜ o monitorou-se a chamada mm page alloc extfrag que se refere a fragmentac¸a˜ o de mem´oria. O script utilizado monitora quando este evento ocorre e incrementa uma vari´avel sempre que o a quantidade de mem´oria liberada for menor que a que est´a alocada.

UFMT - Ciˆencia da Computa¸ca˜o - Barra do Gar¸cas/MT

ISSN: 2179-1953

V Escola Regional de Inform´atica de Mato Grosso - 2014

p. 122

ent˜ao um leque de possibilidades futuras que possam identificar qual estrat´egia seria a mais indicada para o cen´ario investigado.

5. Conclus˜oes e trabalhos futuros Neste artigo foi exposto como uma instrumentalizac¸a˜ o dinˆamica do kernel pode ser u´ til para monitorar os aspectos intr´ınsecos de seu funcionamento. Viu-se que o SystemTap e´ uma ferramenta de instrumentalizac¸a˜ o que permite obter informac¸o˜ es do que est´a ocorrendo no n´ıvel do kernel, sem a necessidade de alterac¸o˜ es em seu c´odigo fonte. Sua aplicac¸a˜ o na an´alise da presenc¸a de fragmentac¸a˜ o de mem´oria no acesso de streams de v´ıdeo na internet auxiliou a descobrir que o processo/aplicativo com menor quantidade de ocorrˆencias de fragmentac¸a˜ o e´ o navegador Firefox, seguido pelos processos internos do sistema operacional. Como trabalhos futuros, pretendemos propor estrat´egias de rejuvenescimento espec´ıficas para o cen´ario investigado nesse artigo.

Referˆencias Eigler, F. C. (2006). Problem solving with systemtap. Proceedings of the Linux Symposium, 1:261–268. Google (2014). YouTube, http://www.youtube.com/.

LLC.

Acesso em 29/02/2014. Dispon´ıvel em:

Grottke, M., Matias, R., and Trivedi, K. (2008). The fundamentals of software aging. In Proc of 1st Int. Workshop on Software Aging and Rejuvenation (WoSAR), in conjunction with 19th IEEE Int. Symp. on Software Reliability Engineering, Seattle. Hansen, P. B. (1970). The nucleus of a multiprogramming system. Commun. ACM, 13(4):238– 241. Jacob, B., Larson, P., Leit˜ao, B. H., and Silva, S. A. M. M. (2009). Systemtap: Instrumenting the Linux kernel for analyzing performance and functional problems. IBM Redbook. Leit˜ao, B. (2010). Depurac¸a˜ o de kernel com systemtap. Linux Magazine, 1(67):58–64. Lilja, D. J. (2000). Measuring Computer Performance: A Practitioner’s Guide. Cambridge University Press, New York. Mamagkakis, S., Baloukas, C., Atienza, D., Catthoor, F., Soudris, D., and Thanailakis, A. (2006). Reducing memory fragmentation in network applications with dynamic memory allocators optimized for performance. Comput. Commun., 29(13-14):2612–2620. Mozilla (2014). Mozilla firefox. Acesso em 21/03/2014. Dispon´ıvel em: http://www.mozilla.org/pt-BR/firefox/new/. Pomerantz, O., Burian, M., and Salzman, P. J. (2009). The Linux Kernel Module Programming Guide. Quicksmart University Guides Series. CreateSpace. Prasad, V., Cohen, W., C., E. F., Hunt, M., Keniston, J., and Chen, B. (2005). Locating system problems using dynamic instrumentation. In Linux Symposium. Selenium (2014). Selenium IDE. http://www.seleniumhq.org/projects/ide/.

Acesso em 01/03/2014. Dispon´ıvel em:

SystemTap (2014). Systemtap. RedHat, Inc. http://sourceware.org/systemtap.

Acesso em 11/03/2014. Dispon´ıvel em:

Wulf, W., Cohen, E., Corwin, W., Jones, A., Levin, R., Pierson, C., and Pollack, F. (1974). Hydra: The kernel of a multiprocessor operating system. Commun. ACM, 17(6):337–345.

UFMT - Ciˆencia da Computa¸ca˜o - Barra do Gar¸cas/MT

ISSN: 2179-1953

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.