高性能服务优化

简介:

    凡是努力过的人都有一个共同点那就是懂得天赋的重要性,没有天赋的人努力做的再好还不如人家随便搞搞,虽说努力不一定会成功,但不努力真的很舒服,有时候不逼自己一下都不相信自己还能把辣么简单的事情搞砸,聊聊高性能服务优化这个重大课题就是为了证明一下自己的技术实力,其实知道的真的就这么一点点。

    这是一个严肃认真的课题,一个复杂深奥的课题,一个滋滋冒油的课题,营养而又美味,值得花费精力深入探索追求极致与完美。要说这年头硬件是越来越便宜了,服务器处理器随随便便几十个核,内存32G是最低消费,硬盘1T的起码好几块,网卡想驱几个驱几个,一加电呼呼响那动静跟飞机起飞似的。服务器集群化应用和管理越来越便利了,计算存储资源都动态调剂了,有必要为了提升几个点的性能费这么大劲吗?没错这话问的没毛病,确实没必要费那么大力气去整这玩意,瞎耽误工夫还不如读读《钢铁是怎么炼成的》呢,下面就聊聊一般可以从哪些方面入手来优化高性能服务。

    1、修改系统默认单一进程可打开文件描述符参数以便允许进程创建更多的接入;

    2、修改系统参数在不影响现有服务的前提下优化各种关闭状态实现尽快回收资源;

    3、服务端初始监听套接字允许端口复用通过多进程多线程方式增加并行处理能力;

     4、采用非阻塞的通信方式,事件驱动的集中管理方式,边缘触发的内核通知模式;

    5、采用异步方式处理业务逻辑,尽量找事干处理器一刻别闲着,哪里有活立马干;

    6、开发语言支持协程尽量以协程实现业务逻辑,协程是极轻量化线程性能提升明显;

    7、优化套接的字属性并扩充读写缓冲区的空间,增加单位时间里数据的有效吞吐量;

    8、采用零拷贝实现对套接字底层读写,减少数据在内核空间和用户空间的复制次数;

     9、进(线)程绑定处理器内核,提高任务调度命中率,降低上下文切换带来的损耗;

    10、谨慎选用同步机制以避免进(线)程间因争夺共享资源成为系统瓶颈,以后单聊;

    11、根据操作的特性来合理选择容器类型用于存储各类资源,具体情况还需具体分析;

     12、优化任务调度算法,优化进(线)程属性参数,适度并合理调配系统的计算资源;

     13、欢迎补充。

    上面提到的部分优化措施所对应的具体代码实现可以从http://git.oschina.net/gonglibin中“项目”或“代码片段”中找到,欢迎咎由自取。

    前些日子有天下班在立水桥换乘,看见一个白白胖胖的小哥倒在站台上,上身T恤下身牛仔裤脚穿旅游鞋,红十字双肩包扔在旁边,躺在地上喘着粗气,一看就是那种天天久坐披星戴月早出晚归晒不着太阳的同行,后来在站务员的关照下慢慢缓过来了,所以说男人对自己下手也别太狠。

    网上说长斑的香蕉对贫血高血压便秘和心绞痛效果更好,特地把刚剥开的香蕉又默默包了起来,着急吃的小伙伴们可以在表皮上画上黑斑效果应该是差不多的,天舟一号顺利升空了,国产航母也顺利下水了,上海上港给首尔FC瓷瓷实实上了一课,膀大腰圆的胡尔克壮的像头牛,五一国际劳动节要到了,假期还是一如既往工作和学习,老话说的好,世上无难事只要肯放弃,有时候人不努力一下都不知道绝望的滋味。

相关文章
|
机器学习/深度学习 自然语言处理
深度学习中的正则化技术:防止过拟合的利器
在深度学习领域,模型的复杂度往往与其性能成正比,但过高的复杂度也容易导致过拟合现象。本文将深入探讨正则化技术在深度学习中的应用,分析其如何通过引入额外信息或限制来优化模型,从而在保持模型复杂度的同时,有效避免过拟合问题。我们将通过具体实例和数据,展示正则化技术的实际效果,并讨论其在不同场景下的应用策略。
|
人工智能 Unix Linux
Linux的学习之路:1、发展史与编译环境的搭建
Linux的学习之路:1、发展史与编译环境的搭建
96 0
|
Java 数据库 Spring
Spring 声明式事务机制
Spring 声明式事务机制
119 0
|
设计模式 算法 搜索推荐
后端开发中的设计模式应用
在软件开发的浩瀚海洋中,设计模式犹如一座座灯塔,为后端开发者指引方向。本文将深入探讨后端开发中常见的设计模式,并通过实例展示如何在实际项目中巧妙应用这些模式,以提升代码的可维护性、扩展性和复用性。通过阅读本文,您将能够更加自信地应对复杂后端系统的设计与实现挑战。
220 3
|
并行计算 PyTorch TensorFlow
环境安装(一):Anaconda3+pytorch1.6.0+cuda10.0+cudnn7.6.4+tensorflow1.15+pycocotools+pydensecrf
这篇文章详细介绍了如何在Anaconda环境下安装和配置深度学习所需的库和工具,包括PyTorch 1.6.0、CUDA 10.0、cuDNN 7.6.4、TensorFlow 1.15、pycocotools和pydensecrf,并提供了pip国内镜像源信息以及Jupyter Notebook和Anaconda的基本操作。
1732 0
环境安装(一):Anaconda3+pytorch1.6.0+cuda10.0+cudnn7.6.4+tensorflow1.15+pycocotools+pydensecrf
|
运维 Kubernetes Cloud Native
探索云原生架构:企业数字化转型的新引擎
【10月更文挑战第9天】 在当今数字化浪潮中,云原生架构以其独特的优势成为企业实现高效运营和快速创新的关键。本文将深入探讨云原生的核心概念、关键技术以及实际应用案例,揭示其如何助力企业加速数字化转型步伐。通过对云原生技术的剖析,我们将看到这一新兴架构是如何重新定义软件开发、部署和运维模式的,进而推动企业在激烈的市场竞争中脱颖而出。
|
监控 NoSQL Redis
【Azure Redis】Redis服务负载达到100%后的影响及有何优化方法
【Azure Redis】Redis服务负载达到100%后的影响及有何优化方法
167 0
|
NoSQL 算法 Java
千万级订单生成的痛点与架构
千万级订单生成的痛点与架构
396 0
|
Java PHP
php-fpm的pool
通过使用不同的pool,你可以更好地优化和控制PHP应用程序的性能和资源使用,确保不同的应用程序在同一服务器上能够良好地隔离和运行。这对于多租户环境或需要处理多个不同类型的请求的服务器非常有用。
154 0
|
弹性计算 安全 Linux
新手使用阿里云esc服务器安装宝塔linux面板建站教程
新手使用阿里云esc服务器安装宝塔linux面板建站教程,阿里云服务器网以CentOS操作系统为例,安装宝塔Linux面板,先远程连接到云服务器,然后执行宝塔面板安装命令,系统会自动安装宝塔面板,安装完成后会返回面板地址、账号和密码,然后在安全组开通宝塔面板端口号
1250 1