就我所读到的关于 iowait 的内容而言,它对我来说仍然是个谜。
我知道这是 CPU 等待 IO 操作完成所花费的时间,但是究竟是什么样的 IO 操作呢?我也不确定,为什么它如此重要?CPU 不能在 IO 操作完成时做其他事情,然后再返回处理数据吗?
还有什么是正确的工具来诊断哪些进程确实在等待 IO。
以及有哪些方法可以最大限度地减少 IO 等待时间?
我想每个人都知道有用的 Linux cmd 行实用程序head和tail. head允许您打印文件的前 X 行,tail执行相同的操作但打印文件的末尾。打印文件中间的好命令是什么?类似于middle --start 10000000 --count 20(打印第 10'000'000 行到第 10'000'010 行)。
我正在寻找可以有效处理大文件的东西。我试过了tail -n 10000000 | head 10,它慢得可怕。
我服务器的控制面板上有这样的字段
分钟 - 小时 - 月中的某天 - 月 - 星期几 - 命令
如何使用此字段创建在每月第一天运行的 cron 作业?
我们有一个 PHP 命令行脚本来对数据库进行版本控制。每当开发人员添加新的数据库补丁时,我们都会运行此脚本。
该脚本使用 MySQL 命令行运行补丁:
system('mysql --user=xxx --password=xxx < patch.sql');
Run Code Online (Sandbox Code Playgroud)
但是,MySQL 5.6 现在发出以下警告:
警告:在命令行界面上使用密码可能不安全
这显然是正确的,但对用户来说可能是也可能不是问题。
请注意,我不想依赖外部密码文件。
你认为我的问题的解决方案是什么?
user@admin:~$ sudo service apache2 restart
sudo: unable to resolve host admin
* Restarting web server apache2
AH00548: NameVirtualHost has no effect and will be removed in the next release
/etc/apache2/ports.conf:8
Run Code Online (Sandbox Code Playgroud) 如果有人了解 LVM 的工作原理,可以告诉我一个粗略的估计,使用 LVM(带有软件 RAID1)会慢多少,我将不胜感激。
(如果 LVM 卷当前处于快照模式执行写时复制,我不想知道 LVM 会慢多少)。我只需要粗略估计 LVM 在正常操作场景中会减慢读写速度。
任何链接也非常感谢我找不到关于这个问题的任何良好的性能基准。
我们有一个运行 nginx 和 PHP-FPM 的负载相当大的服务器。我们在这台服务器上有 6 个网站,运行 PHP-FPM 和 nginx。软件都是 vBulletin 3.8 和 WordPress。数据库位于单独的服务器上。
现在,因为这些是非常受欢迎的网站,我们通常一次有 7-8,000 名访问者在线,每个页面大部分都会访问数据库。我相信这是我们问题的根源。
因为我们在 MySQL 服务器上有这么多大型数据库,而且因为查询可以,老实说,在软件中会好很多,我认为 MySQL 有时会无法及时将结果返回给 PHP,从而产生级联效应,最终导致一切停止,直到我们重新加载 PHP-FPM。在我们这样做之后,一切又开始正常了。
我在解决此问题时遇到问题的原因是我无法从日志中真正辨别出任何内容。在 MySQL 慢查询日志中,当停机发生时,我看不到任何有趣的内容。在 nginx 日志中,我看到数以千计的条目说读取请求超时或连接超时(到 PHP-FPM)。在 PHP-FPM 日志中,我看到很多行说“执行超时(31 秒),终止
所以在这一点上我完全不知道去哪里寻找问题。显然,无论发生什么事,都是因为这些脚本有时执行得不够快(通常它们会在一秒钟内加载,但会发生一些事情导致加载时间猛增)。这种情况一天发生很多次,对我们来说已经成为一个相当大的问题。
现在我只有一个 crontab 来每 10 分钟为 php5-fpm 重新加载提供服务,它可以解决崩溃问题。当然,当PHP重新加载时,nginx会抛出502网关错误,所以也不是很好的解决方案。
PHP 正在运行 APC 缓存,如果这很重要的话。我在一些地方读到 APC 在某些情况下会导致挂起。
任何指针都会有所帮助。我真的不想一直担心这台机器。
当然可以提供更多信息。只要让我知道你需要什么。
更新:我只是将 apc.php 复制到一个网络根目录并访问它以查看我们的统计信息。事情看起来不错。然后我单击链接转到用户统计数据,然后 BOOM 服务器立即挂起。我重新加载了 php-fpm,然后重新加载了用户统计页面,它运行良好。等了一分钟,再次重新加载,服务器再次挂起。
所以这肯定似乎与 APC 相关。问题是 - 我们如何解决它?
APC 配置:
[apc]
apc.enabled="1"
apc.stat = "1"
apc.max_file_size = "2M"
apc.localcache = "1"
apc.localcache.size = "256"
apc.shm_segments = "1" …Run Code Online (Sandbox Code Playgroud) 我在VirtualBox 的Windows XP 上运行的 CentOS 6.1 虚拟机上运行 MySQL5.6.3 。
网卡配置为桥接模式,所以我的物理机和虚拟机共享同一个以太网卡。
在虚拟机上,一切正常:互联网访问、DNS 查找。但是,连接到 MySQL 守护程序需要一段时间,并且日志不断显示此警告:
[警告] IP 地址“192.168.1.201”无法解析:名称解析暂时失败
192.168.1.201 是我运行 MySQL 客户端的主机。
看起来虽然 DNS 查找工作正常,但反向DNS 查找最终会超时。
下面是虚拟机配置:
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
HWADDR="08:00:27:4B:3D:7C"
NM_CONTROLLED="yes"
ONBOOT="yes"
NETMASK=255.255.255.0
IPADDR=192.168.1.200
GATEWAY=192.168.1.1
PEERDNS=yes
# cat /etc/resolv.conf
nameserver 192.168.1.1
Run Code Online (Sandbox Code Playgroud)
我的网络配置有问题吗?
我运行一个网站,其中大约 1000 万个文件(书籍封面)存储在 3 个级别的子目录中,范围为 [0-f]:
0/0/0/
0/0/1/
...
f/f/f/
Run Code Online (Sandbox Code Playgroud)
这导致每个目录大约有 2400 个文件,这在我们需要检索一个文件时非常快。这也是许多问题建议的做法。
但是,当我需要备份这些文件时,仅浏览包含 10m 文件的 4k 目录就需要很多天。
所以我想知道我是否可以将这些文件存储在一个容器(或 4k 容器)中,每个文件系统都完全像一个文件系统(某种安装的 ext3/4 容器?)。我想这几乎与直接访问文件系统中的文件一样有效,并且这将具有非常有效地复制到另一台服务器的巨大优势。
关于如何做到最好的任何建议?或者任何可行的替代方案(noSQL,...)?
在创建 Elastic Beanstalk 环境之前,我已经创建了我的 RDS 实例。两者一起工作没有问题,但我希望它们链接在一起,并且可以通过RDS_*环境变量访问 RDS 参数。
Elastic Beanstalk 配置页面说:

尽管第一个链接就地创建 RDS 实例并将其链接到当前环境,但第二个链接只是重定向到此文档页面。,不幸的是,它只解释了如何创建一个新的 RDS 实例,而不是如何链接一个现有的实例。
如何将现有 RDS 实例关联到我的 Elastic Beanstalk 环境?
mysql ×3
linux ×2
amazon-rds ×1
apache-2.2 ×1
centos ×1
cron ×1
ext3 ×1
ext4 ×1
filesystems ×1
io ×1
iowait ×1
lvm ×1
networking ×1
nginx ×1
performance ×1
php ×1
php-fpm ×1
resolv.conf ×1
sed ×1
storage ×1
tail ×1
ubuntu-12.04 ×1