服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

Apache的htcacheclean不能扩展:如何驯服庞大的Apache disk_cache?

我们有一个巨大的disk_cache(> 500.000条目,> 50 GB磁盘空间使用)的Apache设置。 caching每天增长16 GB。 我的问题是,caching似乎正在增长几乎一样快,可以从caching文件系统中删除文件和目录 ! caching分区是iSCSI存储上的ext3文件系统(100GB,“-t news”)。 Apache服务器(充当caching代理)是一个虚拟机。 disk_cacheconfiguration了CacheDirLevels = 2和CacheDirLength = 1,并且包含变体。 典型的文件path是“/htcache/B/x/i_iGfmmHhxJRheg8NHcQ.header.vary/A/W/oGX3MAV3q0bWl30YmA_A.header”。 当我尝试调用htcacheclean来驯服caching(非守护进程模式,“htcacheclean-t -p / htcache -l15G”)时, IOwait将会经过几个小时的时间 。 没有任何可见的行动。 只有几小时后,htcacheclean才开始从caching分区中删除文件,这需要花费几个小时。 (2009年在Apache邮件列表中提出了类似的问题,但没有解决方法: http : //www.mail-archive.com/[email protected]/msg42683.html ) 高IOwait会导致Web服务器的稳定性问题(通往Tomcat后端服务器的桥梁有时会停滞)。 我想出了我自己的修剪脚本,它从caching的随机子目录中删除文件和目录。 只是发现脚本的删除率略高于caching增长率 。 该脚本需要大约10秒的时间来读取一个子目录(例如/ htcache / B / x),并释放一些5 MB的磁盘空间。 在这10秒内,caching又增长了2MB 。 与htcacheclean一样,在连续运行修剪脚本的时候, IOwait会上升到25% 。 任何想法? 这是(特别慢)iSCSI存储的特定问题吗? 我应该为一个巨大的disk_cacheselect一个不同的文件系统吗? EXT2? EXT4? 有没有这种情况下的内核参数优化? (我已经尝试了截止日程安排程序和一个较小的read_ahead_kb,没有效果)。

最佳性能:1TB与仅使用顺序读取/写入的应用程序中较大的驱动器

我有一个multithreading的自定义应用程序; 每个线程都运行在自己的逻辑核心上(工作站是一个双核,具有12个物理核心和24个逻辑核心)。 所以有24个线程同时运行。 在过去的两天里,我一直在研究众多的存储选项,而我的脑袋正在以大约15k rpm的速度旋转。 该应用程序有2种模式,它们是独占的:读取数据或写入数据; 通过这个我的意思是说,他们不会做交错读/写。 每个线程只会进行长时间的连续读取或写入操作。 我需要的总存储量是巨大的:超过50磅(如果你在2016年阅读这个数据,你现在可能对“巨大”这个词感到好笑)。 每个线程将读取或写入大约.8tb的文件 我打算使用jbod,因为如果一个驱动器出现故障,我只需要交换它,应用程序将在10分钟内重新创build数据。 我将使用SATA或SAS控制器将驱动器放入外部塔架或机架(还没有计算出这些的+/-值)。 所以,我的问题是:我正确地认为使用1tb驱动器的这个特定的应用程序会比使用驱动器的2倍,3倍或4倍更好的性能明智吗? 看起来,除非一个3 TB驱动器的连续读/写吞吐量是1 TB驱动器的3倍,否则较小的驱动器是要走的路。 显然,使用3 TB驱动器减less了我需要担心的驱动器数量的三分之一,但这只是一个考虑因素,如果我能达到与1 TB驱动器相同的性能。

使用ab运行一些基准,而tomcat开始真的放慢速度

我正在运行一些基准使用Apache的工作台上运行的Tomcat上的Java应用程序。 说我运行一个testing,如: ab -c 10 -n 10000 http://localhost:8080/hello/world 它会运行得很好。 如果我遵循它: ab -c 50 -n 50000 http://localhost:8080/hello/world 它会再次运行良好,但如果我再试一次,它可能会在3500个完成的请求后开始减慢。 我试图debugging这个根本原因需要帮助。 我跑了上面,我有一些未使用的内存的演出,所以内存似乎不是问题。 tomcat6过程确实达到了70-80甚至107%。 似乎重新启动tomcat解决了这个问题,但有时需要重新启动服务器。 这是一个默认的tomcat安装,有200个线程分配给它。 Tomcat日志是空的。 更新 所以我把tcp_tw_recycle / reuse重新设置为1,现在运行netstat显示的计数很低。 在改变tcp_tw_recycle /重用之前,我注意到事情放缓并运行netstat,并且我有32400个tcp TIME_WAIT连接。 所以现在运行基准testing的更新,使用-k开关,我看到更多的吞吐量。 但是,在某些时候,事情再次开始放缓,但重新启动tomcat现在使事情恢复正常。 之前,即使我重新启动tomcat,运行ab的响应时间也会非常慢。 现在改变tcp_tw_recycle / reuse后,重新启动tomcat使事情恢复正常。 运行顶部显示tomcat只有CPU的20%左右,所以现在看来​​问题是与tomcat,但我怎么能弄清楚什么?