作者:捡耙活哟752 | 来源:互联网 | 2023-05-18 13:08
前言使用Erlang语言也写一个测试和前面大同小异的测试,在100万个并发连接用户情况下,就是想观察一下极显情况下的表现。这个测试使用了优秀的Erlang界的明星框架cowboy,加单易用的接口,避免
前言
使用Erlang语言也写一个测试和前面大同小异的测试,在100万个并发连接用户情况下,就是想观察一下极显情况下的表现。 这个测试使用了优秀的Erlang界的明星框架cowboy ,加单易用的接口,避免了我们对HTTP栈再次进行闭门造车。
测试Erlang服务器
运行在VMWare Workstation 9中,64位Centos 6.4系统,分配14.9G内存左右,双核4个线程,服务器安装Erlang/OTP R16B,最新版本支持异步代码热加载,很赞。
下载安装
本系统已经提前安装JDK,只需要安装Erlang好了。
安装依赖
yum install build-essential m4 yum install openssl yum install openssl-devel yum install unixODBC yum install unixODBC-devel yum -y install openssl make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-develyum install xsltproc fop
源代码安装
#wget https://elearning.erlang-solutions.com/binaries/sources/otp_src_R16B.tar.gz #tar xvf otp_src_R16B.tar.gz cd otp_src_R16B ./configure --prefix=/usr/local/erlang --enable-hipe --enable-threads --enable-smp-support --enable-kernel-poll make make install
添加到环境变量中(/etc/profile)
export ERL_HOME=/usr/local/erlang export PATH=$ERL_HOME/bin:$PATH
保存生效
source /etc/profile
测试进程创建
这里拷贝《Erlang程序设计》一书提供的processes.erl 源码,稍作修改。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
- module ( processes ). - export ([ max / 1 ]). max ( N ) -> Max = erlang : system_info ( process_limit ), io : format ( "Maxmium allowed process is ~p ~n " , [ Max ]), statistics ( runtime ), statistics ( wall_clock ), L = for ( 1 , N , fun () -> spawn ( fun () -> wait () end ) end ), {_, Time1 } = statistics ( runtime ), {_, Time2 } = statistics ( wall_clock ), lists : foreach ( fun ( Pid ) -> Pid ! die end , L ), U1 = Time1 * 1000 / N , U2 = Time2 * 1000 / N , io : format ( "Process spawn time= ~p ( ~p ) microseconds ~n " , [ U1 , U2 ]). wait () -> receive die -> void end . for ( N , N , F ) -> [ F ()]; for ( I , N , F ) -> [ F ()| for ( I + 1 , N
推荐阅读
CentOS 7环境下Jenkins的安装与前后端应用部署详解 ...
[详细]
蜡笔小新 2024-11-04 16:46:02
通过使用Sqoop导入工具,可以精确控制并高效地将表数据的特定子集导入到HDFS中。具体而言,可以通过在导入命令中添加WHERE子句来指定所需的数据范围,从而在数据库服务器上执行相应的SQL查询,并将查询结果高效地存储到HDFS中。这种方法不仅提高了数据导入的灵活性,还确保了数据的准确性和完整性。 ...
[详细]
蜡笔小新 2024-11-11 22:58:51
本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ...
[详细]
蜡笔小新 2024-11-11 18:02:17
在Linux系统中避免安装MySQL的简易指南 ...
[详细]
蜡笔小新 2024-11-11 13:22:28
【实例简介】本文详细介绍了如何在PHP中实现微信支付的退款功能,并提供了订单创建类的完整代码及调用示例。在配置过程中,需确保正确设置相关参数,特别是证书路径应根据项目实际情况进行调整。为了保证系统的安全性,存放证书的目录需要设置为可读权限。值得注意的是,普通支付操作无需证书,但在执行退款操作时必须提供证书。此外,本文还对常见的错误处理和调试技巧进行了说明,帮助开发者快速定位和解决问题。 ...
[详细]
蜡笔小新 2024-11-11 13:17:39
在.NET Core应用中,托管服务的形式主要分为进程内托管(InProcess)和进程外托管(OutOfProcess)。这两种托管方式各有优缺点,本文将深入探讨它们的特点,并结合实际案例,介绍如何根据具体需求选择合适的托管模式,以实现性能优化和资源利用的最大化。此外,文章还将分享一些实用的配置技巧和最佳实践,帮助开发者提升应用的稳定性和可维护性。 ...
[详细]
蜡笔小新 2024-11-11 12:23:53
在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ...
[详细]
蜡笔小新 2024-11-11 12:12:04
本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ...
[详细]
蜡笔小新 2024-11-11 10:58:21
为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ...
[详细]
蜡笔小新 2024-11-09 19:45:36
在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ...
[详细]
蜡笔小新 2024-11-09 12:37:55
本文介绍了 Vue 开发的入门指南,重点讲解了开发环境的配置与项目的基本搭建。推荐使用 WebStorm 作为 IDE,其下载地址为 。安装时请选择适合您操作系统的版本,并通过 获取激活码。WebStorm 是前端开发者的理想选择,提供了丰富的功能和强大的代码编辑能力。 ...
[详细]
蜡笔小新 2024-11-07 15:02:54
在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ...
[详细]
蜡笔小新 2024-11-07 11:12:58
在 CentOS 7 中,为了扩展可用软件包的数量,通常需要配置多个第三方软件源。这些第三方源包括 EPEL、Nux Dextop 和 ELRepo 等,它们提供了大量官方源中未包含的软件包,从而增强了系统的功能性和灵活性。通过正确配置这些源,用户可以轻松安装和管理更多种类的软件,满足不同的需求。 ...
[详细]
蜡笔小新 2024-11-07 10:18:48
本文介绍了如何在 Windows 系统上利用 Docker 构建一个包含 NGINX、PHP、MySQL、Redis 和 Elasticsearch 的集成开发环境。通过详细的步骤说明,帮助开发者快速搭建和配置这一复杂的技术栈,提升开发效率和环境一致性。 ...
[详细]
蜡笔小新 2024-11-07 06:06:15
本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ...
[详细]
蜡笔小新 2024-11-06 20:37:50