生锈,去,rinha和我/o
#braziliandevs #go #rust #ruby

本文是与我想尝试的不同格式的Innio,是我在最后几天所见过的(摘要或垃圾场捕获的),带有非正式和轻微的脚印像往常一样触摸二世


生锈,去电子背景工作

在2022年,我正在学习Rust。

在一个美丽的第四次雨中,我发了一条推文,说我会尝试实现与Rust相连的列表。几分钟后,我做了outro tweet说我会放弃并看到Netflix。

我放弃了生锈。

最近在2023年,我开始了一个传奇来学习golang。由于语法使我有些困扰,也许是因为if err != nil的冗长散布,所以我决定继续KKK

,但在这一切中添加了一个复杂性:再次学习生锈。

有时候我从这些中得到了,在2015/16年,我决定一起学习长生不老药和人工神经网络,而morphine

出来了

在第二次尝试生锈的尝试中,我承认,它击败了一种感觉。 在这种情况下,好感觉

这样,我开始在Rust和Go中练习(为什么不使用Ruby)简单的数据结构(因为我经常练习):排队,电池,列表,列表,静音等。当然,诸如通常的插座编程。

这个MassRoocada的

全部出现在Rust的outroum UNIX server中,因此从玉米到玉米,一个独特的ambas ambas ambas linguagens

我到达了一个非常夸张的background job em Rust,值得一看,我接近双连接列表,双端行,rpplpush,queue blocking,dlq,retries,retraties,threads等。

所有这些都用Rust的智能指针实现,以解决固有的问题(好的,没有好问题)并借用了检查器。

很快,我将用更详细的文章来写我的《 Rust学习》,我需要在我的生活中度过一段时间,在安东尼田中节省企鹅比

更紧急

但是,如果您认为这是©ì¶sìì确实„ ung同样的概念在Rust和Go.

中应用。


后端

在7月至8月之间,在Twitter上著名的#bolhadev发生了一场名为rinha de backend的比赛,该比赛由Zan do Twitter创建,而我们的《讽刺性Will Correa》。

这个想法是为了让参与的人实施竞争规则中定义的API。

挑战作为一种要求,由基本上 a nginx 负载摆动到 2 API的将数据发送到 a数据库,所有运行的一切都运行在容器中。

如果您想进一步了解容器和码头工具

为了使其更具挑战性,对资源进行了强制性限制,其中总容器无法超过1.5 CPU和3GB内存的限制。

在先前规定的日期中,所有提交都将经过压力测试(暴力,通过)通过一种称为Gatling的工具。

这是一项非常酷的举措,因为它带来了在那里很少互动并且很有才华的轻型人。在宣布的日子里,我可以学习和交换很多贴纸。

另一个好处是,polvo lá do Twitter组织了一个可以传达Live da Rinha的encontro presencial,您可以在这里遇到更多对主题感兴趣的人。

普通红宝石,切斯皮里托和车轮

我决定通过在Ruby(无铁路)中提交一个版本来参加我创建的非常简单的Web框架。

不幸的是,在当地环境的测试中,我没有与Chespirito获得大量数量,最终从Roda出发,这是我见过的最糟糕的框架,因为我对DSL非常厌倦了DSL在这种情况下的情况。我们不需要它们。

我们使用此框架达到的冗长的一个例子:

r.get do              # GET
  r.on "a" do         # GET /a branch
    r.on "b" do       # GET /a/b branch
      r.is "c" do end # GET /a/b/c request
      r.is "d" do end # GET /a/b/d request
    end
  end
end

r.post do             # POST
  r.on "a" do         # POST /a branch
    r.on "b" do       # POST /a/b branch
      r.is "c" do end # POST /a/b/c request
      r.is "e" do end # POST /a/b/e request
    end
  end
end

我之所以选择轮子,是因为他们告诉我它被弄皱了。我没有与Sinatra进行比较,我只是信任

我在周四10:42 pm和wheel和Puma上提交了我的版本,因为我的环境无济于事。

很快我们到达了我的环境

因此,我的顺从是这样的:

  • 带有PUMA的多线程,带有适中的线程池0:5,puma中的默认值,没有CPU工人
  • Pool与PostgreSQL 5连接
  • postgresql nos默认值(100 max_connections)
  • nginx在默认值中,略有增加到1024 Workser_connections

在提交的Docker中,我将资源分配为以下:

  • 0.4 CPU | 1GB MEM PARA作为API(x2)
  • 0.6 CPU | 0.8GB MEM PARA O POSTGRESQL
  • 0.1 CPU | 0.2GB mem para o nginx

然后,我将解释如何更好地分发资源,而diminuindo os números do NGINX e PostgreSQL使我的水口有所改善,但是只有在Grove结束后我才能做到这一点。

哦,格兰德·矩托(O Grande Momento)

我的顺从红宝石在51个功能性提交中排名第20(几乎100次受到了对手的约束,但许多人未推出),在Apost数据库中总共插入了24K的插入片段。 >

我发现这是一件坏事,但我意识到挑战是我/o的挑战,这解释了Twitter nesta threadnesta outra thread天后。

如果I/O-BOND或CPU结合对您来说是奇怪的术语,我建议同时迈出一步,学习在操作系统中竞争的基础,neste super guia,我写了几年的网络操作< /p>

摘要

总结是,然后更加平静,我能够更好地调整自己的开发环境。我放弃了colima,它在我的Macos中表现可怕,并拥抱了orbstack。到目前为止,一切都很好。

这样,我能够更加自信地限制资源在环境中的压力测试。它与Orbstack的虚拟化有关,是更有性能等。

普通红宝石的新希望

这为我打开了大门,可以体验猎鹰和我的切斯皮里托儿子。猜猜是什么。

我还借此机会使用Portainer查看CPU和Docker中的容器记忆。

就这样,我也处于Docker-Compose的限制,因此将更多功能委派给PostgreSQL,这是最糟糕的功能(Parabid Guerreiro,TMJ):

  • 0.2 CPU | 0.3GB para API's (x2)
  • 1 CPU | 1.7GB用于PostgreSQL(是的,在此体系结构中,DB总是花费更多的CPU和内存)
  • 0.1 CPU | 0.1GB para o nginx

与Rine中的许多提交不同,我是少数选择在异步基础上使用任何缓存或批处理插入物的人之一。

我的意图一直是尝试一些我相信很多东西,并且我带来了我工作的项目:不滥用缓存或策略不需要。缓存有帮助,但可以带来许多挑战并最终使其成本。

当然,对于树林来说,一切都是徒劳的。这是一大堆不同的解决方案和知识交流

但是,由于我对成本感到无聊,我始终使用最简单的解决方案,导致熵较少,以证明约束。

风景是这样的:

  • i/o no-o-block与猎鹰,服务合作多任务(光纤)
  • 请求(纤维
  • 切斯皮里托(Chespirito),他对从架子到合适的羊毛的路由信息​​并不多,但是更加明确,没有那个dslì¶hì¶Hì¶

否。不错。但是我有点怀疑我的解决方案仍然存在问题。因为这是一个非常/O的挑战,所以Ruby中的Refukes很少,所以我不得不改善PostgreSql的拉坦。

是Aã扭转了羊毛。

关闭水龙头

Nesta thread我最近分享了我,因为我能够达到46K插入物,但简而言之,我基本上意识到,许多翻拍正在等待(犹太人盖特林)增加了主机,并因此增加了CPU循环以在插座上进行行管理。

我的想法不会不会留下很多摘要,即使DB DB非常崩溃(请记住孩子,正确的生命)。

为了达到此目的,我决定将后Ql减少到30个max_connections,而Nginx则将其降低到256个Worker_connections(可能是128或64 TBH)。在API中,就像两个人一样,我留下了15个连接的池,因为在这种情况下,PostgreSQL将在©30。

结果带来了更好的水槽并获得了46K插入物。

很快我将在Rine中写一篇有关此Ruby Saga的更详细的文章

bash?

事实证明,我也是outra versão并用bash脚本写的,很有趣。这是我所做的无辜推文的产物,人们没有原谅并使这条推文蔓延,所以我感到有义务并在bash中实施了API。

实际上,由于我已经来自传奇教学nos meus artigos使用bash的计算基础,因此与Mkfifo和NetCat制作最少可接受的版本很安静。

我没有重大假装提交,只进行了一次本地测试,并给出了很多错误,以为“我会派遣它会派遣它”,而这是。

令我高兴的是,Bash中的解决方案是Rine的51个功能之一,赢得了梦dream以求的第51位,共有17个插入物。

是的,17个插入

Twitter并没有原谅,他们开始称我为“ Bash的脸”,“剧本bash”等等,但是人们我不在bash 中编程。我只是一个开发脚本的脚本,有时会使用bash来使我的生活更轻松并自动化我需要的东西,但远离“ bash kkkkk”“”


i/oassãncronoe Live编码DO Leandro

随着笑声的蒂米诺(Timino o无块。

我很快写了有关I/O-O-O-block的更多正式和详细的文章,但最近我来自live mesmo,具有更“说明”的格式,转到操作系统竞争的摘要方式,以达到I/O的i/o。 -堵塞。

没有live我在Ruby,Bash和C中带来了例子。如果您想对A Abiaqian42所发生的事情潜伏。


就是所有人

这是这篇简短文章的目的是概述我最近一直在寻找的东西,即通常在Twitter上使用的更为非正式的格式。

我希望这种格式可以是这样,如果我只能继续采用这种格式“riacìriarì确实密度和dodnic格式。

当然,我不会停止撰写通常的文章。我可能是我将英语与葡萄牙语和整个Massarocada混合在一起。

保持边界。