CCoW: Otimizando Copy-on-Write Considerando a Localidade Espacial em Cargas de Trabalho Parte 6
Apr 03, 2024
O melhor tamanho de região e o limite variam de acordo com as características da carga de trabalho. Para avaliar a influência da carga de trabalho, medimos o desempenho do CCoW nas cargas de trabalho com diversas localidades. Especificamente, alteramos o parâmetro da distribuição Zipf, que determina o grau de localidade.
Existe uma estreita relação entre a memória humana e a carga de trabalho. Quando precisamos processar grandes quantidades de informações ou realizar tarefas complexas, nossos cérebros devem permanecer altamente vigilantes para garantir que todas as informações necessárias sejam processadas e armazenadas corretamente. Os neurônios do cérebro estão constantemente se conectando e se comunicando, o que afeta muito a maneira como pensamos e lembramos.
Embora o processamento de grandes quantidades de informação e a realização de tarefas complexas possam desafiar a nossa memória e capacidades cognitivas, a investigação mostra que, com treino e prática adequados, podemos melhorar significativamente a nossa memória e produtividade. Por exemplo, através de experiências, os cientistas descobriram que através de extenso treino e prática de memória, as pessoas podem melhorar significativamente a sua memória e eficiência no trabalho.
Nessa perspectiva, podemos concluir que a prática e o treinamento contínuos são muito importantes para quem deseja melhorar a memória e a eficiência no trabalho. Além disso, mantenha uma atitude positiva, pois o estresse pode prejudicar a memória e a produtividade.
Em resumo, existe uma forte correlação entre carga de trabalho e memória. Contanto que mantenhamos o foco, treinemos e pratiquemos regularmente e mantenhamos uma atitude positiva, podemos melhorar significativamente nossa memória e eficiência no trabalho. Cistanche deserticola também pode regular o equilíbrio dos neurotransmissores, como o aumento dos níveis de acetilcolina e fatores de crescimento, que são importantes para a memória e o aprendizado. Além disso, a Cistanche deserticola também pode melhorar o fluxo sanguíneo e promover o fornecimento de oxigênio, o que pode garantir que o cérebro receba nutrientes e energia suficientes, melhorando assim a vitalidade e a resistência do cérebro.

Clique em conhecer maneiras de melhorar sua memória
Os acessos são distribuídos uniformemente quando é {{0}}, e quanto maior o valor de , maior o nível de localidade que a carga de trabalho exibe. Quando é 1.0, aproximadamente 80% das operações envolvem 20% dos dados.
Esse grau de localidade é comumente encontrado em diversas cargas de trabalho reais, como afirma o princípio de Pareto. Medimos com três valores diferentes, 1.0, 0,9 e 1,1, onde 1.0 é a linha de base e 0,9 e 1,1 representam o carga de trabalho de baixa e alta localidade, respectivamente.
O desempenho original do CoW varia de acordo com as cargas de trabalho, portanto, o período de bifurcação para uma carga de trabalho foi definido de acordo com o tempo medido com a configuração original do CoW. Por exemplo, se a configuração original do CoW requer 10 segundos para recuperar o desempenho normal após uma bifurcação, as outras configurações do CCoW também bifurcam processos filhos a cada 10 s.
A Figura 5 resume o rendimento médio e o uso de memória do CCoW com cargas de trabalho de diferentes localidades. Para a carga de trabalho de baixa localidade, as configurações com limites pequenos de CCoW apresentam melhor desempenho do que aquelas com limites grandes. 'CCoW-all' até supera o CoW original em 15% na carga de trabalho de baixa localidade. Isto se deve à eficácia da pré-cópia. Na carga de trabalho de baixa localidade, uma grande parte da memória pode ser replicada à medida que os acessos são espalhados por todo o espaço de endereço do processo. Na verdade, copiar regiões inteiras resulta na cópia antecipada da memória necessária com baixo overhead.

Assim, quanto menor for o limite, maior será o desempenho do programa com a carga de trabalho de baixa localidade. No entanto, esta tendência tem o efeito oposto com cargas de trabalho em locais elevados. Com cargas de trabalho de alta localidade, muitos acessos concentram-se em poucas páginas.
Isso implica que apenas uma pequena parte da memória precisa ser replicada durante a cópia na gravação. Copiar toda a região em uma falha de página tende a copiar as páginas que não são acessadas.
Isso gera apenas uma sobrecarga temporal, prejudicando o desempenho com cargas de trabalho em localidades mais altas. Como resultado, o CCoW-all apresenta o pior desempenho com a carga de trabalho de alta localidade. Outras configurações mostram padrões semelhantes de cargas de trabalho de linha de base; o desempenho atinge o pico no valor limite de 80% e diminui com limites menores.

O uso de memória do benchmark mostra uma tendência consistente, independentemente do grau de localidade das cargas de trabalho. 'CCoW-all' sempre representa o maior uso de memória porque sempre copia todas as páginas na memória após uma bifurcação. Além disso, os memoryfootprints são inversamente proporcionais ao valor limite; quanto menor for o valor limite, mais memória o benchmark utiliza.
A amplificação da memória só é aumentada em até 10% em comparação com a configuração original do CoW, que é considerada em uma faixa razoável. Além de analisar o desempenho do CCoW, comparamos o desempenho do CCoW com o da página enorme transparente (THP). esquema do Linux.
O THP é um tanto semelhante ao CCoW, pois visa mitigar a sobrecarga originada de páginas pequenas. 'CoW-THP' na Figura 5 representa o desempenho da configuração habilitada para THP. Observe que o sistema habilitado para THP lida com CoW dividindo páginas enormes em páginas base antes de copiar a página defeituosa, e o mesmo acontece com outros esquemas que otimizam o THP [12–15,17].
Podemos observar que o THP apresenta melhor desempenho do que a configuração padrão 'somente CoW'. Atribuímos o ganho de desempenho ao aumento da eficiência na tradução de endereços com páginas enormes.
Especificamente, de acordo com o esquema THP, a parte quente do espaço de endereço do processo provavelmente será dividida em páginas base, proporcionando assim o mesmo desempenho que a configuração 'somente CoW'. No entanto, a parte fria do espaço de endereço do processo não é dividida e mantida com páginas enormes. Assim, isso pode aumentar o desempenho do aplicativo até certo ponto.
No entanto, o THP não fornece tanta melhoria de desempenho quanto o CCoW. A Figura 6 mostra a distribuição cumulativa do rendimento durante a avaliação. o valor da taxa de transferência. Exceto CCoW-all, podemos encontrar três faixas de rendimento frequentemente observadas, independentemente das configurações.
O primeiro grupo na proporção cumulativa de {{0}} a 0.1 indica o período durante o qual o desempenho do benchmark diminui logo após a bifurcação. Em seguida, o desempenho se recupera com o passar do tempo, como no segundo grupo com uma proporção acumulada de 0,1 para 0,7.
As taxas cumulativas restantes na faixa de {{0}},7 a 1,0 são de acessos que não incorrem em falhas de página. No geral, as configurações do CCoW tendem a ter quedas de desempenho mais severas do que o CoW original. Especificamente, com a carga de trabalho de alta localidade do esquema CoW original, a taxa de transferência cai para aproximadamente 1.900 mil operações por segundo logo após a bifurcação.

Em seguida, ele aumenta lentamente até a faixa de 2.500 K operações por segundo. Com o CCoW, o desempenho caiu ainda mais, para a faixa de 1700 K operações por segundo. No entanto, o desempenho recuperou mais rapidamente, demonstrando melhor desempenho do que o CoW original na maior parte do tempo (ou seja, principalmente no lado direito do gráfico cumulativo). Também podemos observar uma tendência semelhante em outras cargas de trabalho, e a configuração CCoW-all demonstra um comportamento extremo; logo após a bifurcação, o desempenho cai significativamente e permanece baixo enquanto a maior parte do espaço de endereço é copiada com acessos espalhados.
Após esse ponto, entretanto, ocorrem apenas algumas falhas de página, de modo que a maioria dos acessos é processada sem falhas de página. Assim, o throughput tem uma distribuição bimodal no CCoW. A partir desta avaliação, confirmamos que o CCoW fornece desempenho ideal ao otimizar o caso comum.
No entanto, a queda de desempenho deve ser abordada para obter melhores características de desempenho. Para esse fim, estamos atualmente trabalhando para limitar a quantidade de dados copiados logo após a bifurcação.

4.2. Desempenho CCoW em carga de trabalho realista
Para avaliar o CCoW proposto em uma carga de trabalho realista, usamos o Redis e o YCSB. O Redis é um banco de dados de valores-chave na memória amplamente usado para acelerar aplicativos em escala de Internet.
Usamos o benchmark YCSB para preencher pares de valores-chave em uma instância do Redis e realizar operações neles. Especificamente, a instância do Redis é inicializada com 10 GB de pares de valores-chave com a configuração YCSB padrão.
Todas as chaves e valores têm 23 e 100 bytes de tamanho, respectivamente, e cada chave contém 10 campos de valores. Depois de preencher a instância do Redis, nós a configuramos para fazer snapshots e então alimentamos as operações de atualização com YCSB.
Para incorporar a localidade temporal nos acessos de valor-chave, configuramos a carga de trabalho YCSB para selecionar chaves alvo de acordo com a distribuição Zip usando o valor do parâmetro 1.0.
Ao fazer 100 GB de atualizações, coletamos o rendimento de cada segundo do relatório de benchmark YCSB. A Figura 7 resume o rendimento médio e o uso de memória da instância Redis quando o sistema está configurado para usar o CoW ou CCoW original. Observe que usamos 2 MB para o tamanho da região e todos os valores dos resultados foram normalizados para CoW.

No geral, todas as configurações CCoW superaram o CoW original, independentemente do limite de cobertura. Da mesma forma, como analisamos acima, o desempenho foi determinado pelo equilíbrio entre o ganho de desempenho da cópia na gravação mitigada e a sobrecarga de cópia de páginas adicionais. Quando o valor limite é alto, apenas algumas regiões são copiadas, diminuindo tanto a oportunidade de otimização quanto a sobrecarga de memória.
Quando o valor limite cai abaixo de 85%, o consumo de memória aumenta e incorre em mais sobrecarga. Como resultado, o rendimento médio do CCoW varia de acordo com o limite de cobertura, mas demonstra uma melhoria de desempenho de até 5% em comparação com o CoW original.
Com a carga de trabalho Redis e YCSB, observamos apenas uma melhoria marginal de desempenho com THP. Isso se deve ao fato de que, na carga de trabalho, os acessos de gravação ficam espalhados por todo o espaço de endereço do processo e páginas enormes são efetivamente divididas em páginas base durante o processamento do CoW.
Como o processo Redis pode ter apenas algumas páginas grandes, seu desempenho é semelhante ao da configuração básica. Este resultado demonstra que a abordagem baseada em THP é menos eficaz em cargas de trabalho com uso intensivo de gravação, e o CCoW supera o THP.
Para avaliar a precisão do mecanismo na identificação de regiões de alta localidade, classificamos o motivo do mecanismo de geração de cópias para cada página copiada. Especificamente, coletamos a proporção de páginas copiadas de todas as páginas copiadas. Quando a proporção de pré-cópia é x%, aumentando o consumo total de memória em y%, podemos calcular a proporção de pré-cópia desnecessária dividindo y por x.
Por exemplo, na configuração CCoW-80, 26,9% das páginas copiadas são copiadas, aumentando o consumo de memória em 6,7%. Isto implica que 24,9% das páginas pré-cópia não são referenciadas. A Tabela 1 resume o cálculo. A proporção de pré-cópia desnecessária varia de 23,4% a 35,6%, e a partir do resultado da avaliação pode-se concluir que o esquema proposto captura com precisão regiões de alta localidade.

5. Conclusões
Neste estudo, propusemos o CCoW, um esquema copy-on-write otimizado para cargas de trabalho com alta localidade espacial. CCoW divide o espaço de endereço do processo em regiões e estima sua localidade com a cobertura.
Uma gravação em uma região de alta localidade leva o manipulador de pagefault a pré-copiar páginas próximas. Para rastrear adequadamente a cobertura após a pré-cópia, o CCoW aproveita a parte suja na tabela de páginas. A avaliação com benchmarks confirmou que o esquema proposto pode identificar regiões de alta localidade com pequena sobrecarga, permitindo ganho de desempenho de aplicações sem modificação.
Como mencionamos, o desempenho cai significativamente logo após o fork devido à enorme quantidade de dados a serem copiados. No momento, estamos trabalhando no gerenciamento da queda de desempenho, limitando a taxa de pré-cópia e executando a pré-cópia de forma assíncrona. Também estamos planejando incorporar um mecanismo adaptativo que ajuste os parâmetros de configuração de acordo com as características da carga de trabalho atual.
Contribuições dos Autores: Conceituação, MH e S.-HK; metodologia, MS; software, MH; validação, MH e S.-HK; análise formal, MH e S.-HK; investigação, MH e S.-HK; recursos, S.-HK; curadoria de dados, MH; redação-elaboração do rascunho original, MH; redação-revisão e edição, MH e S.-HK; visualização, MH; supervisão, S.-HK; administração de projetos,S.-HK; aquisição de financiamento, S.-HK Todos os autores leram e concordaram com a versão publicada do manuscrito.

Financiamento: Esta pesquisa foi apoiada por uma bolsa do Instituto de Pesquisa em Eletrônica e Telecomunicações (ETRI) financiada pelo governo coreano (20ZS1310) e pelo programa BK21 FOUR da Fundação Nacional de Pesquisa da Coreia, financiado pelo Ministério da Educação (NRF5199991014091).
Declaração do Conselho de Revisão Institucional: Não aplicável.
Termo de Consentimento Livre e Esclarecido: Não aplicável.
Declaração de disponibilidade de dados: Não aplicável.
Conflitos de interesse: Os autores declaram não haver conflito de interesses.
Referências
1. Gorman, M. Compreendendo o Gerenciador de Memória Virtual Linux; Prentice Hall: Upper Saddle River, NJ, EUA, 2007.
2. Bovet, DP; Cesati, M. Compreendendo o Kernel Linux; O'Reilly: Newton, MA, EUA, 2001.
3. Love, R. Desenvolvimento do Kernel Linux, 3ª ed.; Addison Wesley: Boston, MA, EUA, 2010.
4. Laboratórios, R. Redis. Disponível online: https://github.com/redis/redis (acessado em 7 de junho de 2021).
5. Silberschatz, A.; Galvin, PB; Gagne, G. Conceitos de sistema operacional; Addison-Wesley Longman Publishing Co., Inc.: Boston, MA, EUA, 2018.
6. Harris, SL; Harris, D. Design Digital e Arquitetura de Computadores; Morgan Kaufmann: Burlington, MA, EUA, 2022.
7. Abi-Chahla, F. Intel Core i7 (Nehalem): Arquitetura da AMD? Disponível on-line: https://www.tomshardware.com/reviews/Intel-i7-nehalem-cpu,2041.html (acessado em 18 de outubro de 2021).
8. Pham, B.; Bhattacharjee, A.; Eckert, Y.; Loh, GH Aumentando o alcance do TLB explorando o clustering nas traduções de páginas. Em Proceedingsof 2014 IEEE 20th International Symposium on High-Performance Computer Architecture (HPCA'14), Orlando, FL, EUA, 15–19 de fevereiro de 2014; páginas 558–567.
For more information:1950477648nn@gmail.com






