InfraPub 为您找到相关结果 559

Linux下多线程程序为什么消耗大量虚拟内存

最近游戏已上线运营,进行服务器内存优化,发现一个非常奇妙的问题,我们的认证服务器(AuthServer)负责跟第三方渠道SDK打交道(登陆和充值),由于采用了curl阻塞的方式,所以这里开了128个线程,奇怪的是每次刚启动的时候占用的虚拟内存在2.3G,然后每次处消息就增加64M,增加到4.4G就不再增加了,由于我们采用预分配的方式,在线程内部根本没有大块分内存,那么这些内存到底是从哪来的呢?让人百思不得其解。 探索 一开始首先排除掉内存泄露,不可能每次都泄露64M内存这么巧合,为了证明我的观点,首先,我使用了valgrind。 valgrind --leak-check=full --track-fds=yes --log-file=./AuthServer.vlog & 然后启动测试...阅读全文

博文 2015-01-28 10:35:39 debian.cn

如何在 Debian 下配置邮件服务器

tcp 0 0 0 0.0.0.0:110 0.0.0.0:* LISTEN tcp 0 0 0 0.0.0.0:143 0.0.0.0:* LISTEN tcp 0 0 0 0.0.0.0:993 0.0.0.0:* LISTEN tcp 0 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 使用邮件用户代(MUA)连接邮件服务器 邮件服务器现在可以使用了。可以在台式机、笔记本电脑、平板电脑或手机上用你最喜爱的电子邮件客户端软件配置邮件账户。以下是与Mozilla Thunderbird配置参数的截图。 故障排除 日志文件/var/log/mail.log是你最好的朋友。任何的问题都可以在这里找到线索。 确保防火墙正确配置。 确保DNS服务器配置了适当的条目。 综上所述,本教...阅读全文

博文 2021-01-28 17:50:22 debian.cn

Golang 中的 channel 通道详解

channel通道golang的并发模型是序列通信处CSP(communicating sequential process)——使用通信来共享内存 ,避免goroutine因竞争共享内存频繁加锁产生的性能问题。基本数据结构golang中提供了一个特殊的类型channel实现goroutine之间的通信。channel类似于队列,先进先出。channel数据结构源码在src/runtime/chan.go下。chan 使用 hchan 表示,它的传参与赋值始终都是指针形式,每个 hchan 对象代表着一个 chan。hchan 中包含一个缓冲区 buf,它表示已经发送但是还未被接收的数据缓存。buf 的大小由创建 chan 时的参数来决定。qcount 表示当前缓冲区中有效数据的总量...阅读全文

利用 NAT VPS 进行流量中转

port 端口号如需只允许 UDP 入站:1sudo ufw allow proto udp from 中转机地址 to any port 端口号以上命令中,中转机地址 为 NAT VPS 的公网 IP 地址。其他系统、其他防火墙控制软件的操作与之类似,放行来自 NAT VPS 的 IP 的指定端口号即可。 一些大陆 NAT VPS 商注:本小节包含的链接含有 aff 值。CloudIPLC:热门稳定,价格合,需要及时关注补货情况碳云:价格较低,年付套餐手慢则无AkkoCloud:二次元风格的网站,产品同样抢手 ReferencesHow to open and close ports on RHEL 8 / CentOS 8 LinuxPort ForwardingNAT 主机的正确食用方法通...阅读全文

博文 2021-03-11 21:16:11 Silearner

互联网协议正在发生变化

HTTP 代服务器使得部署新的压缩技术更困难;中间设备中的 TCP 优化使得部署对 TCP 的改进越来越困难。 最后,我们正处在一个越来越多地使用加密技术的互联网变化当中,首次激起这种改变的事件是,2015 年 Edward Snowden 的披露事件(LCTT 译注:指的是美国中情局雇员斯诺登的事件)。那是一个单独讨论的话题,但是与之相关的是,加密技术是最好的工具之一,我们必须确保协议能够进化。 让我们来看一下都发生了什么,接下来会出现什么,它对网络有哪些影响,和它对网络协议的设计有哪些影响。 HTTP/2 HTTP/2(基于 Google 的 SPDY) 是第一个重大变化 —— 它在 2015 年被标准化。它将多个请求复用到一个 TCP 连接上,从而避免了客户端排队请求,而不会互相阻塞。它现...阅读全文

kubelet 中垃圾回收机制的设计与实现

k.StartGarbageCollection 启动了 GarbageCollect。k8s.io/kubernetes/cmd/kubelet/app/server.go:1089func createAndInitKubelet(......) { k, err = kubelet.NewMainKubelet( ...... ) if err != nil { return nil, err } k.BirthCry() k.StartGarbageCollection() return k, nil }k.StartGarbageCollection在 kubelet 中镜像的生命周期和容器的生命周期是通过 imageManager 和 containerGC 管的。在 StartGarbageCollection 方法中会...阅读全文

博文 2021-02-05 17:48:22 知乎

从 Debian 安装 Proxmox VE,并配置网络和双硬盘

即断网吗? 放心,网卡配置需要重启才能生效,所以你只需要确保重启前正确配置了网卡。 新建一个 vmbr0. Create - Linux Bridge 桥接网卡 将 IP 地址配置到桥接网卡上,桥接网卡指向 物网卡 如果有 IPv6 地址也可以加上。 IPv6 也不是完全没卵用,我们可以用 cf 中转,搞点网站什么的还是可以,就不用再配置一套内网了。 Cloudflare support IPv6 addresses to your origin server, and will accept both IPv4 and IPv6 from clients. via: https://serverfault.com/questions/874387/ipv6-only-server...阅读全文

博文 2021-03-01 20:20:31 驱蚊器喵的插座

Debian 9 使用kubeadm创建 k8s 集群(下)

; 我们告诉kubeadm使用相同的子网。第二个任务在/home/sammy创建一个.kube目录。 此目录将保存配置信息,例如连接到群集所需的管密钥文件以及群集的API地址。第三个任务将从kubeadm init生成的/etc/kubernetes/admin.conf文件复制到非root用户的主目录。 这将允许您使用kubectl访问新创建的集群。最后一个任务运行kubectl apply安装Flannel 。 kubectl apply -f descriptor.[yml|json]是告诉kubectl创建描述descriptor.[yml|json]文件中descriptor.[yml|json]的对象的语法。 kube-flannel.yml文件包含在集群中设置Flannel所需的...阅读全文

博文 2019-05-13 22:57:41 debian.cn

Debian 向左:或将迎来根本性改革 - OSCHINA

”(procedural details)。当抉择艰难时,我们需要创造出一个能够消弭分歧的机制。这个机制甚至能够在我们失去立场的时候,发挥作用。 在 Allbery 看来,Debian 之前走错了方向。在这一层上,Allbery 聚焦在“机制”上。而从 Debian的现存机制上来看,Debian 为项目个人提供了极大的自由。 Debian 把决定权交给了个人开发者,开发者可以按照他们认为合适的方式来进行管。这种自由被 Debian 章程(consitution)和 Debian policy manual 限制,主要是为了确保开发者和他们创建的软件包都能共存并且和睦相处。 当大家分歧不大的时候,这个机制基本上都是可行(不然 Debian 也不会有效运行这么多年)。而面对一些特殊情况,Debian 社区的机制主要...阅读全文

博文 2021-12-06 13:55:01 中文开源技术交流社区