手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:yii

终端服务器超出了最大允许连接数临时解决方法

连接win的服务器的时候,如果非正常情况退出很有可能就会出现:“服务器超出了最大允许连接数”,这时候就比较痛苦了,如果临时需要改东西,而服务器上又运行着重要服务,这时候改也改不了了。又不能随便重启怎么办?以前自己的服务器我都是直接重启的,但是如果运行着重要的公司业务的话就不能这样折腾了。。。

这是找到的资料,先备份一下,以后可能会用的到,来源:http://www.zeali.net/entry/672

江湖救急的方法:

命令行运行 mstsc /console /v:服务器名或IP或域名:远程端口 。比如 mstsc /console /v:172.16.18.99:3389

但有时候这样运行之后仍然会出现“终端服务器超出了最大允许连接数”的错误信息,那样的话你可以尝试把 /console 参数换成 /admin 来连接。

附:
mstsc 语法 (Microsoft terminal services client)
mstsc.exe {ConnectionFile|/v:server} [/console] [/f] [/w:width /h:height]
mstsc.exe /edit”ConnectionFile”
mstsc.exe /migrate

mstsc参数
ConnectionFile 指定用于连接的 .rdp 文件的名称
/v:server[;port] 指定要连接的远程计算机
/admin 将连接到会话以管理服务器
/f 在全屏幕模式下启动“远程桌面”连接
/w:width 指定远程桌面窗口的宽度
/h:height 指定远程桌面窗口的高度
/public 在公用模式下运行远程桌面
/span 是远程计算机的高度和宽度与本地虚拟桌面相匹配,如有必要扩展到多个显示器。
若要扩展到多个显示器,所有显示必须具有相同的高度并垂直排列
/console 连接到指定 Windows 2000 Server 的控制台会话
/edit 打开指定的 .rdp 文件进行编辑
/migrate 将使用“客户端连接管理器”创建的旧版连接文件迁移到新的 .rdp 连接文件中

沙尘暴?

五一,本来是个好日 子,然而晚上鼻子中闻到的都是一股尘土的味道,一下子什么心情都没有了。
于是心里特别为那些生活在北方地区的人感到可怜,他们其实比我们更痛苦啊,我们只是偶尔发生这样的事情,他们一年中却是有小半的日子都会有这种感觉。
早日希望沙尘暴过去。

顺便祝福那些在国际劳动节还在加班的朋友们节日快乐。
最后吐槽一下,我的组织关系在家里,差点居然没了。老爸去帮我问了几次,工作人员都说不知道没看过,后来直到发脾气了,才肯找。当然最后是找到了。于是有时候想想,为什么家乡的发展总是那么慢,与工作人员人的态度还是有关系的。非利益部门就是在撞钟过日子,让别人会怎么样想呢?

yhustc:Twisted+AC自动机构建高效的过滤服务器

这是yhustc帮烂桔搞定AC自动机的过程。上次在PHPX上看到也有人用PHP实现了一个,但我估计在大并发的时候,效率也不会高到哪里去。PHP纯处理字符串效率毕竟还是不咋地。。如果用perl呢?没试过。。。。还是看一下yhustc怎么实现在的吧。
yhustc的网址是:http://www.yhustc.com ,yhustc在文中还提到了twisted,我没用过这个玩意,后来google了一下,发现还是很迷糊。
原文内容如下:

橘子有个网站,访问量大约每天500万PV,为了怕被屏蔽,需要对一系列敏感词进行过滤(超过1200个词),然后才输出内容给用户。

替 换给定关键词的功能,每种编程语言都有,PHP的最强大。基于正则匹配替换的大家都有,就不提了。基于精确匹配的字符串替换,PHP的 str_replace函数可以根据给定的数组,一次函数调用对多关键词进行匹配。自然橘子用的也是这个咯(如果使用的是for i < 1200 顺序的循环,基本系统效率可以无视了)。可是现在问题出现了:系统负载非常高,而且是持续的高,晚上10点的高峰期CPU一直100%的满负荷运行。

要优化性能,就需要一步步的分析瓶颈在什么地方:

1、 由于橘子说有些关键词以后没准会解封,所以不想把原始内容就保存为带上一堆****这样子。因此原始内容都保存的好好的,那么给用户输出的,是每次过滤过 后的结果。那么这里自然有个问题,就是相同的内容,针对每个用户都被过滤了一次,这不明摆着的CPU浪费嘛。我说你可以考虑空间换时间, 加硬盘后上缓存,一定时间内都只过滤一次,其他用户都读缓存即可,这样计算开销几乎全部省下来了。但是橘子哭穷啊,SSD的硬盘两千多一块。IDE的插上 去就得给机器断点,现在百度正在考验自己的站点,这个电断不得(如果IDC够好的话,夜里换其实没啥问题,偏偏他的IDC技术不照)。那行,看来还是只能每次都过滤了,你爱折腾我也没办法。

2、分析一下PHP的str_replace,他既然支持多关键词的数组输入,说明内部肯定是一个AC自动机。 什么是AC自动机,大家请自行google并学习,我就不长篇大论了。本来多关键字替换的应用,AC自动机是最好的选择,但是为啥他的服务器负责就是居高 不下呢?这与PHP的实现机制有关,PHP的生命周期是一个WEB请求,那么每个用户请求页面时,调用一次str_replace。即使输入的数组是一摸 一样的,也必须重新构建一个AC自动机的搜索树,这个搜索树初始化的计算开销以及内存开销乘以并发数,严重降低了系统性能。(也不全是PHP生命周期引发 的,主要是因为AC自动机是封装在str_replace内部实现的,即使是串行的调用,相同输入仍然会每次都初始化自己的搜索树)

那么我们现在的问题就很明确了:实现一个全局的AC自动机,用他来处理所有的请求即可。这个任务PHP是没法执行了,加之要找AC自动机的相关模块才能自己二次开发,选定了python来干这个事情。https://hkn.eecs.berkeley.edu/~dyoo/python/ahocorasick/  这里是python的AC自动机的模块,非常的简单易用,看看就会。 

读 取关键词列表,添加关键词,构建搜索树,OK!测试一下关键词的搜索效果,windows平台下10000次的循环搜索,python的程序比直接用 PHP的str_replace执行时间缩短了200倍,当时震惊的一塌糊涂!!(不过这跟PHP在windows平台执行效率低也有关系,linux上 面明显要快非常多)

话不多说,把python的程序封装到一个Socket TCP Server里面,这样便于WEB的PHP程序通过套接口请求服务,把原文发过来,过滤后又发回去,这样就实现了一次过滤。 

高高兴兴的把程序发给橘子,结果一上服务器,反而比先前的PHP str_replace效率还差。

3、这时候才想到一个问题,我做的测试是串行执行的,只能算运行总时间。如果要上web上面应用,需要考虑并发问题。也就是需要ab测试。ab -c 500 -n 500测试了一把,果不其然,效率忒低。继续分析,我觉得是高并发情况下,python那个简单封装的TCPServer不够用。线程开销和阻塞式的服务 模式拖低了系统效率。为什么会有这种问题,请问自己“你写的http server能跟apache比不?”这里面的性能优化太高深,搞不明白,怎么办呢?我们需要站在巨人的肩膀上才行。于是想到可以用Twisted库来构建自己的TCP Server。什么是Twisted?也请自行google,并且学习一下。

 

把TCP的服务器用Twisted改写了之后,AB测试了一把,大大的有惊喜:

PHP的str_replace版本

ab -c 500 -n 500 str_version.php
Requests per second:    165.86 [#/sec] (mean)
Time per request:       3014.552 [ms] (mean)
Time per request:       6.029 [ms] (mean, across all concurrent requests)

PHP + python的旧版本的tcp server + AC自动机

ab -c 500 -n 500 old_ac_filter.php
Requests per second:    165.06 [#/sec] (mean)
Time per request:       3029.286 [ms] (mean)
Time per request:       6.059 [ms] (mean, across all concurrent requests)

PHP + python的twisted版本的tcp server + AC自动机

ab -c 500 -n 500 twisted_ac_filter.php
Requests per second:    620.93 [#/sec] (mean)
Time per request:       805.246 [ms] (mean)
Time per request:       1.610 [ms] (mean, across all concurrent requests) 

高并发的情况下,每秒处理的请求数提升了4倍,效果那不是盖的。

晚上十点,又迎来了一个访问量的高峰,情况非常稳定,橘子回报:

“之前这个点都是满负载跑-,-  -v-而且还是关闭了在线统计功能的情况下”

“现在我把在线统计打开了,cpu也就50%左右”

反正是够用了,就优化到此为止吧。

其实这个需求,还有进一步优化的余地,空间换时间+全局的AC自动机,可以把系统性能提高若干数量级。 

大 致思路是:在内容刚刚产生的时候PHP通过UDP消息把需要处理的东西发送给python程序,python实现一个两个线程的生产消费者模式的工作进 程。消费线程每次取出消息槽里面一个需要处理的请求,使用一个全局的AC自动机对内容进行处理,然后存放起来,继续处理下一个请求,当没有请求的时候就阻 塞住。生产线程是一个UDP的server,收到数据后就给消息槽添加一个请求数据,并且给消费线程发送信号激活它工作。如此往复即可。

--EOF--
小知识:
Twisted是一个事件驱动的网络框架,它由Python写成,基于MIT授 权协议。Twisted支持各种各样的底层协议,比如:TCP,UDP,SSL/TLS,多地址传输,Unix socket等,以及HTTP,NNTP,IMAP,SSH,IRC,FTP等其他高级协议。有了这些支持相当于有了一个强有力的基础,你可以用它来开发 诸如web server,Mail server,即时通讯软件 等等。

这里还有一个简单的教程(繁体字)

http://ez2learn.com/index.php/python-tutorials/twisted-tutorials

Tags: twisted, ac自动机, python, yhustc

what's this?Adobe, Zend合作推Flash和PHP联合开发

看到这个消息的时候,我震惊了,是的,我真的震惊了。
难道说,又将多一款跨平台的IDE?
上菜:
Zend技术和Adobe系统公司今天宣布,推出Flash Builder 4.5 for PHP,它使开发人员能够利用PHP和Flash开发技能,为移动设备,web和桌面平台提供互连网富客户端应用程序。 该产品提供了一个基于ActionScript的Flash客户端开发的IDE: Flash builder4.5,并结合Zend Studio 8的服务器端PHP能力。突出了移动部署能力,这两家厂商表示,应用程序可以提供给谷歌Android,RIM公司黑莓平板操作系统和苹果的iOS系统。 对ios系统,IDE生成本机代码应用程序,而不是运行在苹果的IOS禁止运行的AIR环境(Adobe集成运行环境)的软件。 Android应用同样生成本机代码包。

Zend的首席执行官Andi Gutmans介绍说,“Flash Builder 4.5 for PHP使得??PHP开发人员很容易建立移动应用程序,也使开发人员很容易构建服务器端的移动应用程序。我们都有同样的想法“。应用程序本身可以在W??indows或Mac客户端上建立。

“现在开发人员能够使用一种工具,一个框架和一个通用代码库来??建立应用程序,部署在Android,黑莓和IOS上运行,”Adobe公司产品经理Dave Gruber说。 Flash Builder 4.5 for  PHP将在5月11日交付,高级版包含有网络跟踪、内存和性能分析,售价为799美元。标准版没有这些功能将花费399美元。 Adobe和Zend同时宣布正在进行Adobe Creative Suite 5.5产品线的部署。
原文连接
http://www.itworld.com/development/154477/adobe-zend-combine-flash-and-php-development
译文连接
http://www.chinashare.net/?/3216-1-0-1-1.html
欢迎访问中国开发论坛(http://www.chinashare.net),论坛提供delphi/java/.net/php/c/python等开发语言交流平台,欢迎大家前来灌水.

--EOF--
仔细想想,原来也就是eclipse再装个插件。难道ZEND又将PDT之类的插件剥出来了?提供给adobe使用了?哎,文中加深颜色的部分让我激动了一下,我以为是基于FLASH开发的,结果还是Eclipse。。。。这TMD的都是谁写的文章 。。忽悠,大忽悠。。。我还就想了,flash builder什么时候基于actionscript了。。

原文:

The product provides an IDE combining Adobe's Flash Builder 4.5, for ActionScript-based Flash client development, and Zend Studio 8, for server-side PHP capabilities.

大哥,这是翻译成你那句话的吗。。。。。。

Tags: adobe, zend, php, ide

买了一台一体机

最近这段时间休息在家里,因为要写代码,原来的12寸的笔记本屏幕太小了,于是就萌生了要买一台台式机的想法。
毕竟,众所周知的,台式机嘛,同样价格的情况下,性能要优于笔记本。嗯,更重要的是,屏幕大了,屏幕大的好处就太多了。比如我的IDE,就可以看的更舒服,而不至于像现在,IDE一开,可视的范围就剩一点点大了。。。几乎无法写代码,郁闷啊。

最终,我选择了两台电脑作为挑选,没有选择imac。实在是没钱了。买imac的钱,可以够我买两台台式机了。我也没有选择普通的台式机,因为老婆觉得家里再堆一个机箱,有N多线连着很烦人。所以我在选择了很多电脑之后,确认了两台机器,那就是:

 


这两台电脑其实我是比较偏向于后一台,因为,他是4G内存,我就无所谓再添加2G内存了,而且23寸的屏幕,也可以让我看的很爽。然而,京东上,这一台电脑一直没货。。。太郁闷了。最终我买了前面一台 5139cx,缺点是只有2G内存,其他我也就忍了。其实还有一款3699的HP20寸的电脑,但是那台电脑的鼠标是有线的,键盘也是,所以我最终还是确认这一台了。。

下周开始,我的开发速度估计又会上升一点了,毕竟笔记本开发,12寸,1024*768的分辨率也太低了。。。当然有钱的话,我是会考虑imac。。

Tags: 一体机, hp