从我最近两次解决服务器变慢的问题来看,有时候很难想到服务器变慢会因为这些原因。下面给大家介绍一下,希望某一天你服务器变慢的时候能够想到这个思路!
服务器变慢非常规解决方法一
场景:
在网通机房托管了一台服务器,百M独享。花了很多钱,当然是为了创造更高的价值,这个服务器主要是用来做视频点播。但是从托管之日起,从未感受到100M独享到底速度有多快,后来经过检测,发现还没有我们公司50M光纤速度快。于是写了一份速度测试报告,递交到网通,希望能够非常严肃的来处理这个问题。
机房人员测试以后,也非常的无奈,网线插到其他服务器上,速度就能够达到很高,在局域网下载东西平均10M。但是在我的服务器上下载同样的文件,平均速度才6M,换了网卡依然如此。这样得出的结论是,问题出在我的服务器上。
问题出在自己的服务器上,先不说提交的那份测试报告,自己是多么的无知,现在考虑的是该怎么解决速度问题?难道两个网卡都坏掉了?在无奈的情况下,就开始在系统中点这点那。突然发现一个地方非常值得一试。那就是网卡的连接速度。我们现在的网卡都是10M/100M自适应网卡。一般不会去人为调整网卡的连接速度。但是在这种无奈的情况下,只能一一测试。选择了100M的全双工模式。重新启动服务器以后,再测试速度,下载局域网文件已经回复正常,在其他地方点播视频也明显感觉速度提高了不少。
如图所示:(注:两个图片不是取自一台服务器的网卡属性页,只是为了说明问题)
服务器变慢非常规解决方法二
我公司的另一台服务器不知道从什么时候开始变的特别的慢,咨询机房那边,人家说很正常,可能是我们程序的问题。于是就开始仔细研究每一个程序,研究每一个网站所占用的内存。但是研究了很久,优化了很多,效果还是那样,依然慢的无法忍受。
这个时候,我一直使用PING 命令来检测服务器的速度如何,自从服务器慢了以后,PING返回的数据包总有丢失的现象。严重的情况平均10次就有1次丢包,仔细分析丢包的现象应当不是程序的问题,只能是线路的问题,在其他地方PING我们的服务器依然是丢包严重,这就排除了是我们公司网路的问题。再次想到了是不是网卡工作时间太久,老化了,于是要求机房人员重新换一下网卡。
结果可笑的是,机房人员告诉我,经过他们的测试,发现是网线的问题,重新换了一根网线,速度又恢复正常。也没有了丢包现象。
可能在你服务器没有遇到问题的时候,你会感觉上面的两种方法很可笑,但是服务器是24小时运行的,不可能不出现硬件老化等其他问题,我只希望能够将我自己的解决方法成为你日后处理服务器的一种思路。
1、可自定义网站根目录
2、可自定义端口号
3、可自定义默认首页
4、可自定义404页面
5、可自定义505页面
6、可自定义rewrite规则
软件下载地址:http://ucren.redsaga.com/downloads/httpserver.rar
源代码下载:http://ucren.redsaga.com/downloads/httpserver-source.rar
本地下载1
本地下载2
实现对多用户的管理
首先需要取消“站点属性/允许匿名连接”,如图1。
接着进入“计算机管理/本地用户和组”,新建立一个组,这里建立为FTPuser,然后新建立一个用户FTP01,然后修改FTP01的属性,把它加入FTPuser组,去掉系统默认的users组。在NTFS格式分区下(这里为d盘)创建文件夹FTP01和FTP02,然后设置安全权限,如图2。
同样设置文件夹FTP02的权限为FTP02完全控制,当然这里可以按照实际情况分配不同用户不同的权限。回到IIS管理器,选择一个FTP站点“新建/虚拟目录/下一步”在别名处输入FTP01,选择“下一步”,路径选择刚刚创建的FTP01目录,选择“下一步”,同样新建一个虚拟目录FTP02,路径指向FTP02目录。这里注意的是:别名和目录名以及用户名3个必须完全一致。
测试一下:这里以IP为192.168.0.16为例,输入FTP://192.168.0.16,回车,提示输入用户和密码,输入FTP01及其密码,顺利进入,这时进入的只能是FTP01虚拟目录,可以上传一个文件,然后在服务器上查看一下是放置在哪个目录下就可判定了。同样,以FTP02登入,就进入了FTP02目录,用户被限制在自己的目录内不能进入他人目录,安全性还是有保障。如果用户需要能自己更改密码,则只需要在创建用户的时候,不选中图3所示的选项即可。
小提示:
客户端修改FTP账户密码的方法:
在命令提示符下输入:
FTP 192.168.0.16
输入用户名
输入密码
输入quote “site pswd 旧密码 新密码”
本方法优点:结合NTFS权限以及磁盘限额能很好地实现多用户的多样化管理。
本方法缺点:由于FTP用户密码是以明文的方式在网络上传输,所以不太安全,遗憾的是,IIS内置的FTP服务并不支持SSL,这一点比不上Serv-U。
实现Serv-U中的链接功能
这是利用路径解析原理实现的,算得上是MS-FTP的一个隐藏功能。首先在FTP站点根目录(这里为d盘)下创建一个文件夹,名为tools,在IIS管理器中,在FTP站点下创建一个虚拟目录,名为tools,路径指向f盘下的“工具”目录。注意这里的虚拟目录名必须和站点根目录下创建的文件夹名一致。
在客户端登录,这时不能使用FTP01、FTP02登录了,因为他们登录进去后直接到了站点根目录下的对应子目录下了,同时不能向上回到站点根目录,所以只能另外创建新用户,这里我创建了一个FTP03用户,登录进去发现除了可看见FTP01、FTP02目录外,还有其他目录,但是前面设置了FTP01,FTP02目录的权限,所以FTP03并不能访问他们,只是知道这些目录的存在而已。点击tools目录,您会发现自动指向了服务器的f盘下“工具”目录。
本方法优点:不用第三方工具实现了链接功能,在有多个驱动器可使用的情况下特别有用。如果是想链接到一个完整的分区,那么在站点根目录下创建一个文件夹,名字和驱动器号相同就可以了。
本方法缺点:需要创建额外的用户,如果FTP01这类用户想浏览其他磁盘上的内容就很难了。
自动更新FTP站点目录及文件列表
Windows有一个很有用的命令tree在这里可以大显身手了。如果FTP站点根目录是d,我们只要创建一个批处理文件,内容如下
tree /f /a d: >d:FTP.txt
然后添加一个任务计划,每小时运行一次。值得注意的是,添加完一个任务后必须进行高级设置才行,如图4所示。
这样设置好后,用户登录时可以先下载FTP.txt这个文件到本地看看是否有更新,这样可以节省用户一个目录一个目录去找更新的时间,尤其是网速较慢的情况下。对这个进行扩展一下,可以更节省用户的时间,还是得靠Windows另外一个有用的命令fc,编写如下批处理文件FTP更新.bat:
tree /f /a d: >d:FTPnew.txt
fc /L d:FTP.txt d:FTPnew.txt >d:FTP更新列表.txt
然后运行一次前面编写得FTP.bat,再运行一次FTP更新.bat,这时可以查看FTP更新列表.txt了,如果有更新的话,会以*****开头*****结尾的形式指出哪个目录有更新,更新的文件名是什么都列出来了,是不是更一幕了然呢。用户只需要首先下载FTP更新列表.txt查看就可以了,当然用户已经浏览过这个FTP站点,第一次浏览下载FTP.txt就可以了,如果嫌FTPnew.txt这个文件不应该出现在站点根目录下,也可以在编辑命令时指向其他位置即可。
如今在论坛上也见很多FTP列表,手工维护实在很麻烦,只要把FTP更新列表.txt放在一个Web路径下或专门为创建一个虚拟目录指向FTP更新列表.txt所在目录,那么我们就可以通过浏览器直接浏览这个文件,因为IE浏览器是可以直接解析txt文件的,所以不会提示下载。为了更好方便浏览者还可对FTP更新.bat进行补充,完整的FTP更新.bat内容如下:
tree /f /a d: >d:FTPnew.txt
fc /L d:FTP.txt d:FTPnew.txt >d:FTP更新列表.txt
echo 更新时间>> d:FTP更新列表.txt
date /t >> d:FTP更新列表.txt
time /t >> d:FTP更新列表.txt
然后添加一个计划任务,每小时执行一次这个批处理文件,这样浏览者不仅仅看到更新的内容,还知道更新的时间,下一次更新时间也可以自己推算出来了。如果经常登录这个FTP站点,还可以把这个地址加入收藏夹,不用登录FTP也能知道服务器是否有更新,有兴趣可访问http://test.yuanlin.cn/FTP列表更新.txt看看效果。
上面所涉及到的工具都是Windows自带的,没有使用任何第三方工具,其实Windows还有很多地方值得我们去深挖。