.NET跨平台之旅:将QPS 100左右的ASP.NET Core站点部署到Linux服务器上
2016-09-27 16:39
1181 查看
今天下午我们将生产环境中一个单台服务器 QPS(每秒请求数)在100左右的 ASP.NET Core 站点部署到了 Linux 服务器上,这是我们解决了在 .NET Core 上使用 EnyimMemcached(memcached客户端)的问题之后,.NET 跨平台之旅迈出的重要一步。这个 ASP.NET Core 站点,既用了缓存,也有数据库访问操作,是一个典型的 Web 站点,如果它能持续稳定运行,将为我们全站迁移至 ASP.NET Core + Linux 扫清障碍。
这个 ASP.NET Core 站点用的 memcached 客户端是我们在 nuget.org 上最新发布的 EnyimMemcachedCore;
.NET Core 用的是最新的 .NET Core 1.0.1;以 self-contained 方式部署,用 dotnet publish 命令发布出来的文件中包含可以直接在 Linux 上运行的可执行文件,因此服务器上无需另外安装 .NET Core 运行环境,用 scp 命令将 dotnuet publish 命令生成的文件上传到部署服务器即可。
最前端用的是阿里云负载均衡,后端 2 台 Linux 服务器的配置是 1 核 CPU 与 1G 内存,Linux 发行版用的是 Ubuntu 14.04,使用 supervisor 以服务的方式运行站点。Web 服务器用的是 Kestrel,Kestrel 目前最大的问题是不支持主机名绑定,同一台服务器上的不同站点必须绑定不同的端口,这给部署带来了麻烦。数据库服务器用的是阿里云 RDS(SQL Server 2008 R2)。Memcached 缓存服务器用的是阿里云云数据库 Memcache 版。
接下来,我们将一边观察已经运行在 ASP.NET Core + Linux 上的站点的运行情况,一边将更多项目迁移至 ASP.NET Core 。
这个 ASP.NET Core 站点用的 memcached 客户端是我们在 nuget.org 上最新发布的 EnyimMemcachedCore;
public void ConfigureServices(IServiceCollection services) { services.AddEnyimMemcached(options => options.AddServer("memcached", 11211)); }
.NET Core 用的是最新的 .NET Core 1.0.1;以 self-contained 方式部署,用 dotnet publish 命令发布出来的文件中包含可以直接在 Linux 上运行的可执行文件,因此服务器上无需另外安装 .NET Core 运行环境,用 scp 命令将 dotnuet publish 命令生成的文件上传到部署服务器即可。
"frameworks": { "netcoreapp1.0.1": { "imports": [ "dnxcore50", "portable-net45+win8" ], "dependencies": { "Microsoft.NETCore.App": "1.0.1" } } }
最前端用的是阿里云负载均衡,后端 2 台 Linux 服务器的配置是 1 核 CPU 与 1G 内存,Linux 发行版用的是 Ubuntu 14.04,使用 supervisor 以服务的方式运行站点。Web 服务器用的是 Kestrel,Kestrel 目前最大的问题是不支持主机名绑定,同一台服务器上的不同站点必须绑定不同的端口,这给部署带来了麻烦。数据库服务器用的是阿里云 RDS(SQL Server 2008 R2)。Memcached 缓存服务器用的是阿里云云数据库 Memcache 版。
Now listening on: http://*:8003 Application started. Press Ctrl+C to shut down.
接下来,我们将一边观察已经运行在 ASP.NET Core + Linux 上的站点的运行情况,一边将更多项目迁移至 ASP.NET Core 。
相关文章推荐
- .NET跨平台之旅:将QPS 100左右的ASP.NET Core站点部署到Linux服务器上
- .NET跨平台之旅:生产环境中第2个跑在Linux上的ASP.NET Core站点
- .NET跨平台之旅:将示例站点从 ASP.NET 5 RC1 升级至 ASP.NET Core 1.0
- .NET跨平台之旅:升级ASP.NET Core示例站点
- .NET跨平台之旅:在生产环境中上线第一个运行于Linux上的ASP.NET Core站点
- .NET跨平台之旅:成功将示例站点升级至ASP.NET Core RC2
- .NET跨平台之旅:博问站点迁移至ASP.NET Core on Linux并发布上线
- .NET跨平台之旅:博问站点迁移至ASP.NET Core on Linux并发布上线
- .NET跨平台之旅:在Linux上以本地机器码(native)运行ASP.NET Core站点
- .NET跨平台之旅:将示例站点升级至ASP.NET Core 1.0
- 基于VS2017的Docker Support体检ASP.NET Core站点的Docker部署
- asp.net core + debian8 + nginx + supervisor部署asp.net core 站点
- Asp.Net Core部署到Linux服务器
- 品尝阿里云容器服务:初步尝试ASP.NET Core Web API站点的Docker自动化部署
- 品尝阿里云容器服务:初步尝试ASP.NET Core Web API站点的Docker自动化部署
- .NET跨平台之旅:将示例站点升级至 ASP.NET Core 1.1
- .NET跨平台之旅:将示例站点从ASP.NET 5 Beta5升级至Beta7
- 以self-contained方式在Linux上部署ASP.NET Core站点
- .NET跨平台之旅:将示例站点从ASP.NET 5 Beta7升级至RC1
- Asp.Net Core, Angular 4 CLI站点部署