我注意到 Apache 在我的 LAMP 服务器(ubuntu 10.10)上运行多个进程。我只是在运行一个使用 MySQL 作为数据库的 Wordpress 站点。似乎 www-data 运行 apache2 的次数比它应该多(也使用太多内存),我是否正确:
ID Owner Size Command
31200 www-data 251236 kB /usr/sbin/apache2 -k start
20678 www-data 250948 kB /usr/sbin/apache2 -k start
25781 www-data 248888 kB /usr/sbin/apache2 -k start
31045 www-data 248844 kB /usr/sbin/apache2 -k start
19926 www-data 246480 kB /usr/sbin/apache2 -k start
20749 www-data 239380 kB /usr/sbin/apache2 -k start
32616 www-data 238632 kB /usr/sbin/apache2 -k start
8846 mysql 238128 kB /usr/sbin/mysqld
24178 www-data 234228 kB /usr/sbin/apache2 -k start
32618 …Run Code Online (Sandbox Code Playgroud) 如何测量正在运行的 Linux 服务器的 IOPS?我知道SATA驱动器的理论IOPS在90左右,企业级10k SAS/FC磁盘是180。我想知道我正在运行的系统目前使用了多少?
目前我正在使用 iotop 和 iostat。但是这两个实用程序都没有提供 IOPS 数字。
顺便说一句,这个问题不是重复这个。我不是要对我的存储系统进行基准测试,而是要弄清楚我当前系统使用了多少 IOPS。
我有一个小的 logrotate 失误...... Logrotate 会通过失误旋转存档的日志,导致我的/var/log/. 当我发现有什么不对劲的时候,/var/log/已经包含了几百万个文件......
我设法(在一些脱发和 find/sed/grep 魔法之后)删除了所有有问题的文件并修复了我的 logrotate 配置。并认为一切都很好......
每当我ls/du -hs或以其他方式列出/var/log/(现在包含 80mb 的档案/日志和最多几百个文件)的内容时,执行此操作的过程会挂起一两分钟。我确实相信这在某种程度上与 logrotate 事故有关,但我不确定,可能是其他原因。无论如何,我不知道从哪里开始调试或寻找解决方案。请帮助:3
uname -a
Linux xxx 3.3.8-gentoo #18 SMP Sat Sep 21 22:44:40 CEST 2013 x86_64 Intel(R)
Core(TM)2 CPU 4400 @ 2.00GHz GenuineIntel GNU/Linux
cat /proc/meminfo
MemTotal: 2051552 kB
MemFree: 75612 kB
Buffers: 9016 kB
Cached: 1740608 kB
SwapCached: 0 kB
CFQ IO scheduler + SLUB allocator
Run Code Online (Sandbox Code Playgroud)
我想:一个目录中有多少文件太多了?(从网络下载数据)是相关的,但我不再有文件了。 …
我们最近注意到我们的数据库查询运行时间比平时长得多。经过一些调查,看起来我们的磁盘读取速度非常慢。
过去我们遇到过类似的问题,由 RAID 控制器在 BBU 上启动重新学习周期并切换到直写。这次似乎不是这样。
我在bonnie++几天内跑了几次。结果如下:
22-82 M/s 的读取速度似乎非常糟糕。dd在原始设备上运行几分钟,显示读取速度为 15.8 MB/s 到 225 MB/s(请参阅下面的更新)。iotop并不表示有任何其他进程在竞争 IO,所以我不确定为什么读取速度如此可变。
RAID 卡是 MegaRAID SAS 9280,具有 RAID10 中的 12 个 SAS 驱动器(15k,300GB)和 XFS 文件系统(在 RAID1 中配置的两个 SSD 上的操作系统)。我没有看到任何 SMART 警报,阵列似乎也没有降级。
我也运行过xfs_check,似乎没有任何 XFS 一致性问题。
接下来的调查步骤应该是什么?
Ubuntu 12.04.5 LTS
128GB RAM
Intel(R) Xeon(R) CPU E5-2643 0 @ 3.30GHz
Run Code Online (Sandbox Code Playgroud)
的输出xfs_repair -n:
Phase 1 - find and verify superblock...
Phase 2 - using internal log
- …Run Code Online (Sandbox Code Playgroud) 我正在考虑将 Google 的公共 DNS 服务器作为我网络的外部 DNS。目前我正在使用来自我的 ISP 的 DNS 服务器。我过去也考虑过 OpenDNS,但最终决定不跳。
我希望能够对各个服务器能够为我们的 DNS 请求提供服务的速度进行基准测试。我在 nslookup 中看不到任何有用的东西。
如何测试外部提供的 DNS 的往返时间?
我正在调整我的主页以提高性能,目前它在 3.14.by 上处理大约 200 个请求/秒,它处理 6 个 SQL 查询,在 3.14.by/forum(phpBB 论坛)上处理 20 个请求/秒。
奇怪的是,某些 VPS 和专用 Atom 330 服务器上的数字大致相同。
服务器软件如下:Apache2+mod_php prefork 4 childs(这里尝试了不同的数字)、php5、APC、nginx、用于PHP会话存储的memcached。
MySQL 配置为占用大约 30% 的可用 RAM(VPS 上约为 150Mb,专用服务器上为 700Mb)
看起来某处存在瓶颈,不允许我走得更高,有什么建议吗?(即,我知道执行少于 6 个 SQL 会使其更快,但这看起来不是一个限制因素,因为 sqld 由于缓存查询而在顶部的消耗不超过百分之几)
有没有人测试过踢预分叉的 apache2 并只留下 nginx+php 快得多?
更多基准
Small 40-byte static file: 1484 r/s via nginx+apache2, 2452 if we talk to apache2 directly.
Small "Hello world" php script: 458 r/s via ngin+apache2.
Run Code Online (Sandbox Code Playgroud)
更新: 似乎瓶颈是 MySQL 在缓存数据上的性能。带有单个 SQL 的页面显示 354req/sec,有 6 个 SQL - 180 …
我正在编写一个索引器,使用 python,它索引文档并将它们插入到数据库中,在它是单个进程之前,但现在我使用 4 个并行进程运行进行多处理。每次文本提取后,它插入到数据库中并进行提交。
现在遇到了IO问题,主要的IO问题不是我的进程而是EXT4的jdb2,journeling系统。它是在 99.99% 并且在每个 MySQL 提交时让 CPU 等待 IO。
我在互联网上看到很多人遇到这个问题,他们的解决方案是使用 barrier = 0 进行挂载。那会完全禁用日记功能吗?我的服务器有 UPS 并且很想这样做,我应该这样做吗?
我们正在研究在这里实施一些虚拟化服务器,但我们不知道哪种更适合我们。有些人说最好有两台巨大的服务器,而另一些人说最好有 10 台中端服务器。
我们有一个传统的 Visual Foxpro 应用程序,它现在在 Dual Xeon E5405 @ 2GHz 和 16Gb 的 RAM 上运行。当前服务器由于活跃用户的数量和在其上运行的进程而变得太慢。虚拟化此服务器将使我们受益于更快的灾难恢复。
所以问题是,如果有 10 台物理服务器以 1.7GHz 和 4Gb 内存运行,我们可以将一台服务器虚拟成 4 台机器,并让一台虚拟化服务器以 6.8GHz 和 16Gb 内存运行?如果是的话,如果一台机器停止,自动管理这个虚拟机到另一台机器,并对其执行适当的维护,然后再回到它,如何?
我已经设置了一对具有 RAID 阵列(8 核、16GB RAM、12x2 TB RAID6)、3 个 10GigE 接口的相同服务器,以托管一些高可用性服务。
这些系统目前运行的是 Debian 7.9 Wheezy oldstable(因为 corosync/pacemaker 在 8.x stable 和 testing 上均不可用)。
但是,无论我如何配置 DRBD,吞吐量都限制在 100MB/s。它看起来真的像一些硬编码限制。我可以通过调整设置来可靠地降低性能,但它永远不会超过 1Gbit(一次达到 122MB/s 几秒钟)。我真的很喜欢这个。
配置分为两个文件global-common.conf::
global {
usage-count no;
}
common {
handlers {
}
startup {
}
disk {
on-io-error detach;
# no-disk-flushes ;
}
net {
max-epoch-size 8192;
max-buffers 8192;
sndbuf-size 2097152;
}
syncer …Run Code Online (Sandbox Code Playgroud) 假设您有两个 RAID 阵列,一个有 N 个磁盘,另一个有 N+1 个磁盘。具有 N 个磁盘的阵列被格式化为RAID\xc2\xa05并保持不变,而另一个阵列在其中一个磁盘被移除之前被格式化为RAID\xc2\xa06 。现在,两个阵列都有 N 个磁盘,N-1 个磁盘的可用存储空间,并且可以在丢失一个(多个)磁盘的情况下幸存下来。
\n除了 RAID 控制器使用的任何元数据之外,这两个阵列之间是否有任何差异(在数据布局、性能和可靠性方面)?我能否将缺少一个磁盘的 RAID\xc2\xa06 阵列转换为一个较少预期磁盘的 RAID\xc2\xa05,并尽可能减少“重塑”/“重写”?
\n我知道 RAID 5 和 RAID 6 中有不同的“策略”/“对齐”,但这可能超出了这个问题的范围。也许应该假设两个阵列都使用两个 RAID 级别通用的策略。
\n