A prática do pensamento de otimização de sistema simples

Autor: Yan Xiaonan, JD Logística

1. Problemas

Em meados do ano passado, um grande amigo meu (você pode chamá-lo de Hua Ge) começou um negócio com paixão, apesar da grave situação epidêmica da época, ele gastou uma quantia enorme de dinheiro para contratar várias barracas na cafeteria de seu empresa original, e de repente se tornou o chefe. Hua Ge, que se tornou o chefe, não relaxou nem um pouco. Ele não apenas fez pesquisas de mercado suficientes, mas também fez inovações com base em seus próprios pontos problemáticos ao comer no passado. Legumes fritos são vendidos em porções, cerca de uma dúzia de yuans para um prato de carne e quase dez yuans para um prato vegetariano, o que leva a um problema. Geralmente, os meninos só podem comer 2-3 pratos depois de gastar dezenas de dólares. A nutrição não é rica o suficiente. Se você pisar o poço e se deparar com uma situação em que você tem grandes expectativas, mas descobre que a comida real não é deliciosa, a experiência será ainda pior.

Portanto, o irmão Hua emprestou as características do modo de pesagem opcional de Malatang no mercado e lançou um modo de auto-seleção e pesagem. Haverá muitos tipos de pratos prontos (carnes e vegetais) na mesa de jantar, e todos podem escolher de acordo com suas próprias preferências. Você pode pedir sua própria comida. O arroz e os pães cozidos no vapor são gratuitos, o mingau e a sopa também são gratuitos e, em seguida, alguns alimentos básicos, como batata-doce e milho, são fornecidos mediante taxa. Alimente o grampo, depois escolha a sopa e o mingau, e depois finalize a compra e passe o cartão, conforme a foto abaixo:

Hua Ge é digno de ser o gerente de produto da medalha de ouro do antigo gigante da Internet. Ele compreendeu profundamente os pontos problemáticos dos usuários e forneceu soluções correspondentes muito bem. O modo de pesagem de autoatendimento foi muito bem recebido pelos colegas desde o seu lançamento. , There é sempre uma longa fila, mesmo quando a refeição começa às 11h30, muitos colegas estão esperando na fila antes das 11h20, quero dar um exemplo intuitivo de uma longa fila enquanto escrevo aqui Impressão, o primeiro exemplo Pensei na longa fila na entrada da confeitaria de jujuba em Wudaokou. Mais tarde, quando pensei sobre isso, a fila de panelas de barro no restaurante no 4º andar do Bloco B, nº 2 do Edifício Jingdong parecia mais apropriada .

O irmão Hua ficou muito feliz no começo, mas um mês depois, ele fez um inventário da receita e descobriu que algo estava errado. Embora parecesse que a fila era longa e lotada, a receita real não era a esperada. O irmão Hua analisou e descartou os fatores de baixo preço do pedido. No modo de auto-seleção, há muitos pratos que todo mundo quer pedir depois de vê-los. Depois de ir e vir, eles farão um prato grande. Basicamente, o preço do pedido começa em 20 yuans; e então restam apenas pedidos. A possibilidade de baixa quantidade é uma possibilidade. Após uma análise real, pode-se descobrir que, como há muitas variedades de pratos para escolher, leva muito tempo para cada pessoa para escolher os pratos no processo de seleção de vegetais. Além disso, a sopa e o arroz precisam ser preparados. Leva muito tempo para concluir todo o processo de coleta das refeições. Embora os colegas de trás possam pedir pratos em série atrás dos colegas da frente, mas porque todos têm preferências diferentes, o tempo de permanência de cada um diante de pratos diferentes é diferente, o que leva ao fato de que quando os colegas da frente demoram um pouco mais na frente de um determinado prato, os colegas de trás ficam em estado de espera.

E às vezes haverá algumas situações extremas, por exemplo, alguns colegas ficarão muito tempo na frente de alguns de seus pratos favoritos para escolher e escolher, e alguns colegas alternarão no sentido horário e anti-horário enquanto pedem sopa grátis Mexendo freneticamente na tentativa para pegar as folhas de legumes espalhadas e as claras de ovos na sopa, o irmão Hua testemunhou com seus próprios olhos que o gerente a quem ele havia relatado antes revirou e revirou a tigela de legumes de frango com pimenta procurando os escondidos nas profundezas do pimenta. Um pouco de frango, toda vez que um pedaço de frango é encontrado, o gerente mostra um sorriso satisfeito no rosto. Na verdade, quando o gerente está colhendo frango, toda a equipe está em um estado de estagnação completa, assim, olhando para o desempenho de toda a equipe A execução do processo de jantar é muito lenta, o que leva ao fato de que o número de pessoas que efetivamente pagam pela refeição não é o esperado.

Dois, o programa

Mais tarde, em uma reunião de amigos, o irmão Hua conversou comigo sobre esse assunto e me perguntou: Todos vocês, tecnólogos, não se gabam da otimização do sistema, redução de custos e aumento da eficiência, por favor, ajudem-me a encontrar uma maneira. Depois de ouvir o pedido levemente provocador do irmão Hua, de repente senti um grande senso de responsabilidade em mim mesmo e senti que deveria manter a dignidade de uma pessoa técnica. Então pensei sobre isso por um tempo e então senti que esse problema de negócios pode realmente ser considerado um problema técnico. A mesa de jantar pode ser considerada um sistema e o processo de pedir refeições pode ser considerado um processo interativo de o sistema. Pode ser considerado como uma chamada, porque o desempenho de cada chamada é muito ruim, resultando em uma taxa de transferência muito baixa do sistema como um todo, afetando o desempenho do sistema geral, portanto, o desempenho de todo o sistema é muito baixo, embora tenha bebido por três rodadas naquele momento, minha mente não está tão clara, mas ainda tento o meu melhor para pensar em várias maneiras para o irmão Hua.

2.1 Expansão do sistema

A primeira solução que vem à mente é a expansão. No campo da tecnologia de engenharia, quando o desempenho do sistema não está de acordo com o padrão, a primeira solução que vem à mente é geralmente a expansão. A expansão da capacidade no campo da engenharia geralmente pode ser dividida em vertical expansão e expansão horizontal Método: A expansão vertical é para aumentar a capacidade de processamento de uma única instância melhorando a capacidade de hardware de uma única instância, e a expansão horizontal é para aumentar a capacidade de processamento de todo o sistema adicionando nós de instância.

Aplicando essas duas teorias, vamos ver como melhorar o rendimento da mesa de jantar. Parece que a expansão vertical não pode fazer muito. Você não pode atualizar a colher de cozinha para uma colher folheada a ouro importada da Alemanha; Não adianta maneira de expandir verticalmente, mas a expansão horizontal parece poder fazer muitas coisas, desde que mais alguns conjuntos de mesas de cozimento sejam adicionados, de modo que as 2 equipes de cozimento executadas em paralelo possam se tornar 4, ou até 8, diretamente Percebi que o Multi-threading é simultâneo, de modo que a taxa de transferência geral do sistema pode ser duplicada imediatamente. O efeito não é apenas eficaz, mas também imediato. Então, desenhei um diagrama esquemático de expansão horizontal, conforme mostrado na figura a seguir:

No entanto, o plano de expansão horizontal foi rapidamente rejeitado pelo irmão Hua. Embora no campo da tecnologia de engenharia, com a maturidade da tecnologia nativa da nuvem, a expansão e a contração no nível do aplicativo sejam soluções muito maduras para melhorar os recursos de processamento do sistema, mas aqui, é é impossível para o irmão Hua montar outra mesa de jantar, sem falar que o estande contratado pelo irmão Hua não tem um espaço tão grande para montar uma segunda mesa de jantar.

Embora os problemas neste mundo que podem ser resolvidos com dinheiro não sejam chamados de problemas, o problema agora é que o irmão Hua não tem dinheiro.

2.2 Otimização de Execução Única

Se a maneira de melhorar a simultaneidade do sistema falhar, a maneira de melhorar a taxa de transferência do sistema é reduzir o tempo de processamento e execução de uma única solicitação, de modo que o número de solicitações processadas pelo sistema por unidade de tempo aumente, melhorando assim a taxa de transferência do sistema. chega à mesa de jantar, torna-se necessário encurtar o tempo para uma pessoa pedir uma refeição, principalmente quando o ex-gerente do Hua Ge passa muito tempo na frente de um único prato, como otimizá-lo?

Vamos dividir cada chamada, e o processo de fazer vegetais na frente de cada prato pode ser simulado e entendido como a execução de um pedaço de lógica, de modo que todo o processo de fazer vegetais possa ser desmontado em pequenos blocos de código, e o tempo total de chamada é É determinado pela soma do tempo de execução desses blocos de código. Do ponto de vista da tecnologia de engenharia, é garantir que cada parte da lógica seja concluída dentro de um tempo previsível, para que cada parte da lógica possa controlar a execução de cada parte de código por meio de uma lógica de julgamento de tempo limite. Tempo, aqui está um exemplo de pesquisa do Baidu. Para aumentar a diversidade de resultados retornados, o Baidu lançou a arquitetura Aladdin. Após cada consulta ser analisada pelo modelo de mapa estelar, ela será distribuída para diferentes categorias verticais. Cada categoria vertical será processada e produzida. Cartões em seu próprio campo de negócios e, em seguida, o aplicativo raiz do Aladdin agrega os resultados retornados por categorias verticais e os retorna ao usuário. A execução de determinadas categorias verticais será mais lenta. Para Por exemplo, quando um usuário pesquisa um medicamento, o vertical de saúde Esses aplicativos filtram as farmácias o2o próximas com base na longitude e latitude do pesquisador e calculam o preço com desconto promocional do medicamento na loja. Esse cálculo geralmente leva muito tempo , portanto, o aplicativo raiz adicionará um julgamento de tempo limite de 380 ms. Para todos os aplicativos verticais são os mesmos. Quando o conteúdo que você retornar exceder esse tempo, o resultado será descartado. Deixe este exemplo para que todos entendam que, aumentando a configuração de tempo limite para cada link, isso pode garantir que o processo geral seja controlado e executado dentro do prazo, garantindo assim a consistência da experiência do usuário.

O tempo limite no programa é fácil de aumentar, porque o programa não tem emoções, mas a cena do pedido das refeições é diferente. É impossível colocar um garçom atrás de cada prato para contar 123 atrás do tempo e empurrá-lo para frente depois de mais de 5 segundos. Isso não pode ser feito. Bem, o motivo é que pedir pratos é subjetivo e ativo. Ele pode parar o quanto quiser antes de um prato. Depois de pensar sobre esse problema, tive a ideia de privar os usuários do direito de fique independente e crie um tempo de permanência unificado. Então, projetei um dispositivo de tempo limite para o irmão Hua, que é adicionar um conjunto de transportadores automáticos em ambos os lados da mesa de jantar, semelhante à esteira rolante no aeroporto para o terminal após a segurança verifique, de modo que quando as pessoas estão pedindo comida em ambos os lados Não há necessidade de andar sozinho, e todos ficam na frente de cada prato pelo mesmo tempo, então não haverá problema de uma pessoa ficar na frente de um determinado prato por muito tempo e também evita o problema de que a mesa de jantar é causada pelo longo tempo de alguém à sua frente. O problema de estagnação geral devido ao atraso de tempo melhorou o rendimento da mesa de jantar e o A adição da esteira tem a vantagem de poder rodar muito devagar ou até mesmo parar quando não há muita gente, e a velocidade da esteira pode ser adequadamente aumentada no horário de pico. Controle o tempo de cada pessoa pedir comida para garantir a taxa de transferência de toda a mesa de jantar.

O irmão Hua ficou surpreso por muito tempo depois de ouvir minha ideia genial. Depois de calcular a possibilidade, ele sentiu que esse método é realmente viável. Ele só precisa esperar até o Dia Nacional ou o feriado de 1º de maio para iniciar a construção e adicionar correias transportadoras em ambos lados. Finalmente, ele ouviu um irmão Hua, que tinha um plano viável, estava um pouco animado, e suas bochechas também estavam levemente coradas.

2.3 Eliminação de processos não essenciais

Vendo que o irmão Hua aceitou meu plano, imediatamente senti muito encorajamento, então continuei pensando em como otimizar este processo. No campo da tecnologia de engenharia, um processo ainda pode ser feito quando é submetido a uma grande quantidade de tráfego. O objetivo é simplificar o processo, manter apenas os links do processo principal, que geralmente é chamado de processo dourado, e remover os nós de negócios não essenciais do processo principal, para que o processo principal simplificado possa reduzir o tempo de execução para até certo ponto, e o processo principal A lógica de execução do processo é menor e a probabilidade de erro também é reduzida. Tomando como exemplo o processo de cálculo do pedido do Varejo JD, as seguintes coisas precisam ser feitas quando o lado do varejo liquida:

Na verdade, ainda existem muitos nós não principais para lidar na liquidação, como excluir itens liquidados relacionados no carrinho de compras, armários de coleta automática pré-ocupados, etc., mas esses são processos não essenciais e podem ser removido do processo principal.

Voltando à mesa de jantar, que processo é o golden process? Sim, são aqueles processos que estão diretamente relacionados à receita, e aqueles itens que não geram receita, como arroz, pãezinhos, sopa e mingau, podem ser considerados como processos não principais. É removido do processo principal, o que simplifica continuamente o processo principal de levar as refeições para todos, e também economiza o espaço do restaurante. O espaço restante pode ser usado para várias coisas. Uma delas é colocar mais alimentos básicos ou adicionar alguns pratos. Desta forma, a renda pode ser aumentada. A segunda é adicionar algum equipamento de caixa registradora de autoatendimento. Os dois balcões de caixa registradora anteriores podem atender à demanda quando o pedido de refeições era lento, mas agora todo o processo é simplificado e a velocidade geral de pedidos de refeições para todos aumentou. Dessa forma, Duas caixas registradoras se tornará um novo gargalo, especialmente ao encontrar alunos que têm pagamento direto por escaneamento do código, o gargalo será mais óbvio. Dessa forma , aumentando o número de caixas registradoras, a capacidade de processamento simultâneo da caixa registradora é aprimorada, garantindo que todo o processo de tomada de refeições seja tranquilo, evitando o surgimento de novos gargalos de desempenho, perfeito!

O irmão Hua ficou muito satisfeito depois de ouvir essa sugestão. Ele sentiu que a mesa de jantar era muito pequena e não havia pratos suficientes. Dessa forma, o espaço era mais razoavelmente usado para alimentos que poderiam gerar lucros. Foi exatamente o que o irmão Hua desejado Irmão Hua Muito feliz em me respeitar.

2.4 Cache distribuído

Além disso, uma arma mágica muito importante para a Internet aumentar o throughput do sistema e reduzir o tempo de execução único é usar a tecnologia de cache distribuído. A tecnologia de cache distribuído pode reduzir muito o tempo de aquisição de dados para muitas chamadas com gargalos do sistema. , a tecnologia de cache distribuído também pode ser usada na mesa de jantar aqui?

Eu pensei sobre isso. O alimento básico gratuito, a sopa e o mingau que foram removidos do processo principal anteriormente podem usar o princípio do armazenamento em cache, especialmente o princípio do armazenamento em cache do CDN, para distribuir o alimento básico, a sopa e o mingau perto da mesa de jantar dos colegas . , para que os colegas que comem possam servir alimentos básicos, sopa e mingau o mais próximo possível. Superficialmente, não há aumento na receita, mas, na verdade, uma é que a experiência gastronômica de todos é melhor e a segunda é que todos come mais. A refeição é conveniente e o tempo para comer será reduzido, melhorando assim a taxa de utilização da mesa de jantar. Certifique-se de que o próximo colega que receber uma refeição possa encontrar um assento rapidamente, e a experiência também será aprimorada. Não vou fazer nenhum desenho aqui, acredito que todos possam entender.

Três. Pós-escrito

O irmão Hua abaixou a cabeça e pensou profundamente depois de ouvir meu plano de otimização como um todo. Depois de muito tempo, ele levantou a cabeça e olhou para mim, seus olhos estavam um pouco embaçados. Eu estava um pouco nervoso, pensando que ele queria comentar sistematicamente sobre meu plano. O meu é, que horas são agora, e percebi que o irmão Hua apenas bebeu demais e adormeceu com a cabeça baixa.

{{o.name}}
{{m.name}}

Acho que você gosta

Origin my.oschina.net/u/4090830/blog/8586941
Recomendado
Clasificación