我正在运行一个大的WordPress多用户网站。 我在WordPress应用程序服务器前有一个清漆caching。 由于cachingPOST请求是没有意义的,所以我很容易被DDoS使用大量的POST对varnishcaching服务器。 我试着设置一个只接受来自每个客户端的20个同时连接的防火墙规则,但是这对那些坐在共享代理之后的用户以及同一个网关后面的许多用户的学校有影响。 Varnish没有速率限制POST数量的选项,我想在达到应用程序服务器之前执行速率限制。 有一个小的透明代理可以完成这项工作吗? 目前Varnish正在接受约100-150点/秒,代理至less应该能够处理这个负载。
我对Memcached集群的世界很陌生 如果我有一个正在使用memcache的php web应用程序 – 它是如何做它的散列,并决定检查特定值的节点,以避免检查所有的。 奖金:如何轻松添加节点,避免重build所有散列。
下面是我的.cnf文件,如果我看到我的CPU消耗99.99%的我的mysqld命令。 MySQL服务器是从远程机器连接的,它经常更新数据,但是我确保远程服务器打开连接,读/写/更新,然后closures它。 另外远程服务器读取很多。 我可以做些什么来减less我的CPU消耗。 仅供参考,我正在使用4GB RAM的2核心CPU。 [client] port = 3306 socket = /var/run/mysqld/mysqld.sock [mysqld_safe] socket = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] user = mysqluser pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql skip-external-locking wait_timeout = 20 interactive_timeout = 60 bind-address = <IP-ADDRESS> […]
我在谷歌做了一些阅读,我做的唯一的事情就是让自己感到困惑。 有些人说count()比较慢,有很多logging,有人说你可以caching数字甚至是使用sequence … 用最佳性能和最低cpu / ram使用情况来统计表中多行的最佳方法是什么? 我的意思是> = 500,000行。
我正在玩pgBouncer作为PostgreSQL的连接池系统。 我的系统是一个12核心,运行Debian 8.1的64GB RAM和1Gbpsnetworking接口。 现在我想提高开放套接字连接的限制,比如10.000个并发客户端。 在进行数据库基准testing时, pgbench实用程序会阻止大约950个并发客户端,这似乎达到了1024个开放式的极限,就像以前那样。 我检查了fs.file-max内核参数和pgbench运行用户的资源限制: # sysctl fs.file-max fs.file-max = 6598264 # su – postgres $ ulimit -Sn 65536 $ fgrep files /proc/self/limits Max open files 65536 65536 files $ 但是, proc的限制表明,对于pgBouncer (以用户postgres运行)的最大打开文件的软限制最多只有1024个打开的文件: $ ps -e | fgrep pgbouncer 9840 ? 00:00:00 pgbouncer $ fgrep files /proc/9840/limits Limit Soft Limit Hard Limit […]
希望有人可以指出我正确的方向与我遇到的一些iSCSI性能问题。 我在旧的ProLiant DL360 G5上运行Openfiler 2.99。 双Xeon处理器,6GB ECC内存,英特尔千兆服务器网卡,SAS控制器和3个10K SAS驱动器在一个RAID 5中。当我直接从盒子运行一个简单的写testing,性能非常好: [root@localhost ~]# dd if=/dev/zero of=tmpfile bs=1M count=1000 1000+0 records in 1000+0 records out 1048576000 bytes (1.0 GB) copied, 4.64468 s, 226 MB/s 因此,我创build了一个LUN,将其连接到另一个运行ESXi 5.1(Core i7 2600k,16GB RAM,Intel千兆服务器NIC)的盒子,并创build了一个新的数据存储。 一旦我创build了数据存储,我就可以创build并启动一个运行CentOS的虚拟机,它具有2GB的RAM和16GB的磁盘空间。 操作系统安装正常,我可以使用它,但是当我在虚拟机内部运行相同的testing时,我得到了截然不同的结果: [root@localhost ~]# dd if=/dev/zero of=tmpfile bs=1M count=1000 1000+0 records in 1000+0 records out 1048576000 bytes (1.0 GB) […]
我有一个Ubuntu 10.10服务器有大量的RAM,带宽和CPU。 在服务Apache和nginx的静态文件时,我看到一个奇怪的,可重复的延迟分布模式。 由于这个问题对于两个http服务器来说都是常见的,所以我想知道我的Ubuntunetworkingconfiguration或caching参数configuration是否错误或调整不当。 ab -n 1000 -c 4 http://apache-host/static-file.jpg : Percentage of the requests served within a certain time (ms) 50% 5 66% 3007 75% 3009 80% 3011 90% 9021 95% 9032 98% 21068 99% 45105 100% 45105 (longest request) ab -n 1000 -c 4 http://nginx-host/static-file.jpg : Percentage of the requests served within a […]
我正在尝试构build一个实验来测量ionice的效果。 我想做的是( 在serverfault上的另一个答案 )导致足够频繁的I / O,足够的“nice”进程饿死任何I / O。 基于serverfault上的另一个答案 ,我认为我需要每250毫秒至less一个实际的I / O操作到一个通用的CFQ预定的设备。 我的想法是写一个有一个循环的小程序 写入普通设备上的(可configuration)文件, 做一个fsync() (强制一个确定的I / O操作), 使用usleep()来延迟可configuration的时间量 定期使用lseek()截断文件(这样我就不会填充文件系统) 然后,我使用ionice -c3 ( 空闲调度类)针对普通设备上的一个文件启动程序的一个实例。 我同时使用默认( 尽力而为 )调度类运行各种实例,在通用设备上指定不同的文件(改变延迟值)。 我的假设是,在“尽力而为”的过程中,对于250ms或更长的延迟值,我将看到“闲置”过程取得的进展; 对于小于250毫秒的值,我会看到“闲置”过程所取得的进展甚微。 我的观察是这两个过程的performance没有差别, 他们都取得了相似的进展。 可以肯定的是(如果挂钟指示“尽力而为”的进程比每250ms执行I / O的速度快),我开始同时执行“尽力而为”进程的多个实例,延迟。 不过,我看到两个调度类中的进程在性能上没有差别。 可以肯定的是,我重新检查了调度程序类: $ cat /sys/block/xvda/queue/scheduler noop anticipatory deadline [cfq] 我错过了关于cfq调度器的工作原理的是什么? 如果重要的话,这是2.6.18内核。
ionice手册页说 以闲置优先级运行的程序只有在没有其他程序在限定的宽限期内请求磁盘io时才会获得磁盘时间。 这个“宽限期”在哪里定义? 它是可见/可调的(也许通过/ sys)?
我一直在使用LVM快照来备份MySQL数据库。 FLUSH TABLES WITH READ LOCK被发出,然后lvcreate –snapshot –size 4G等。由于数据库在快照处于活动状态时处于活动状态,因此snap_percent (用于跟踪文件系统原始状态的快照存储量拍摄快照的时间)开始增加。 这个snap_percent是每天都进行监控的,如果达到80%,这个–size就会增加。 我的问题是ZFS中是否有等效的统计信息或属性,用于确定快照消耗的空间量占池中剩余空间的百分比? 很明显,我不需要将–sizeparameter passing给zfs snapshot但是如何确定基于该快照的克隆是否接近池的限制。 希望这是有道理的,现在看来,这听起来像是一个复杂的问题。