Ubuntu 16.04下ASP.NET Core+ MySql + Dapper在 Jexus、nginx 下的简单测试
一、環境及工具
1、服務器
VirtualBox5.1.4 安裝?Ubuntu Server 16.04 amd64
MySql Ver?14.14 Distrib 5.6.21
Jexus 5.8.1
nginx 1.10.0
dotnet core 1.0.0-preview2-003121
supervisor 3.2.1
2、開發環境
VS2015 + Update 3
DotNetCore.1.0.0-VS2015Tools.Preview2.0.1.exe
3、測試工具
HttpTest4Net:http://www.ikende.com/httptest
二、項目及代碼
1、mysql 數據訪問、ORM
MySql.Data.Core 7.0.4-IR-191
Dapper 1.50.2
2、數據庫及表
數據庫:Test
數據表:User 兩個字段:Id,Name,數據4條
項目,最簡單的三層結構,實現增刪改查(下載)
如需使用項目,請修改數據庫連接字符串,在?appsettings.json 文件里:
? ?"IncludeScopes": false, ? ?
? ?"LogLevel": { ? ? ? ?
? ?"Default": "Debug", ? ? ?
? ? ?"System": "Information",
? ? ? ? ? ?"Microsoft": "Information"}}, ? ?"ConnectionStrings": { ? ?
? ?"TestDb": "server=192.168.2.117;Port=51889;userid=test8888;password=test8888;database=Test;SslMode=None;"} }
項目使用ASP.NET CORE 自帶的依賴注入,沒有使用第三方的,Controller代碼如下:
[Route("api/[controller]")] ??public class UserController : Controller{ ? ? ?
?? ? readonly IUserBll _userBll; ?
?? ? ?public UserController(IUserBll userBll){_userBll = userBll;}[HttpGet] ? ?
? ? ? ?public IEnumerable<User> Get(){ ? ? ? ? ?
? ? ? ? ? ?return _userBll.GetList();}[HttpGet("{name}")] ?
? ? ? ?public User Get(string name){ ? ? ? ? ?
? ? ? ? ? ??return _userBll.Get(name);}[HttpPost] ? ?
? ? ? ?public void Post([FromBody]User user){ ? ? ? ? ?
? ? ? ? ? ?if(user == null || string.IsNullOrEmpty(user.Name)){ ? ?
? ? ? ? ? ? ? ? ?return;}_userBll.Add(user);}[HttpPut] ?
? ? ? ?public void Put([FromBody]User user){ ? ? ? ? ?
? ? ? ? ? ?if (user == null || user.Id < 0 || string.IsNullOrEmpty(user.Name)){ ? ? ? ? ? ? ? ?return;}_userBll.Update(user);}[HttpDelete("{id}")]
? ? ? ?public void Delete(int id){_userBll.Delete(id);}}
三、ASP.NET CORE 在 Ubuntu 的配置
參考大神?savorboard?的博客:http://www.cnblogs.com/savorboard。
四、測試結果
說明:因為使用jexus端口轉發模式測試時,Requests:10000 ? Users:50 ?KeepAlive:False 的時候,就出現了很多錯誤連接,所以沒有繼續測試,不知道是不是我的配置有問題,配置如下:
###################### # Web Site: Default ########################################port=8080root=/ /hoem/vsftpd/website/webapitest hosts=* #OR your.com,*.your.com# addr=0.0.0.0# CheckQuery=falseNoLog=trueAppHost.Port=5000# NoFile=/index.aspx # Keep_Alive=false # UseGZIP=false # UseHttps=true # DenyFrom=192.168.0.233, 192.168.1.*, 192.168.2.0/24# AllowFrom=192.168.*.* # DenyDirs=~/cgi, ~/upfiles # indexes=myindex.aspx # rewrite=^/.+?\.(asp|php|cgi|pl|sh)$ /index.aspx端口轉發測試結果如下:
下面是 nginx 和 jexus 反向代理模式下的測試結果:
1. Requests:10000; Users:50;KeppAlive:False
nginx:
jexus:?
2. Requests:10000; Users:50;KeppAlive:True
nginx:
jexus:
3. Requests:10000; Users:200;KeppAlive:False
nginx:
jexus:
4. Requests:10000; Users:200;KeppAlive:True
nginx:
jexus:
5. Requests:10000; Users:500;KeppAlive:False
nginx:
jexus:
6. Requests:10000; Users:500;KeppAlive:True
nginx:
jexus:
?
7. Requests:10000; Users:100;KeppAlive:False
nginx:
jexus:
8. Requests:10000; Users:1000;KeppAlive:True
nginx:
jexus:
?
五、總結
測試環境非常簡陋,測試到1000用戶的時候,路由器受不了了,其他應用程序都紛紛離線了,包括QQ。上面結果可能不是非常準確,但是有一定的參考價值。
只測試了GET,沒有測試POST。
感覺ASP.NET CORE 應該慢慢的可以使用到生產環境中了:)。
原文地址:http://www.cnblogs.com/Starts_2000/p/aspnetcore-ubuntu1604-mysql-dapper-jexus-nginx-test.html
.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注
總結
以上是生活随笔為你收集整理的Ubuntu 16.04下ASP.NET Core+ MySql + Dapper在 Jexus、nginx 下的简单测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SignalR的性能监测与服务器的负载测
- 下一篇: Docker容器环境下ASP.NET C