我很好奇是否有人在文件系统和数据库性能之间做过任何实验或比较。在 Linux 上,我想知道 postgres 数据库的最佳文件系统是什么。此外,哪些设置(inode 等)最适合它?根据数据库中的数据,这可能会大不相同吗?
如果您正在寻找有关一般文件系统/数据库性能的问题,这篇文章有一些很好的信息。
但是,我想获得尽可能多的关于插入性能而不是读取性能的建议。感谢所有伟大的答案!
在设置 MySQL 以提高性能方面,我是一个非常大的菜鸟。老实说,我并不担心从 MySQL 中挤出最后一点性能的微调,但我知道提供一些最佳结果的最重要的事情是正确设置缓存/缓冲区。
我试图通过仅使用 InnoDB 作为存储引擎来保持简单。而且我确实有一个用于 MySQL 的专用服务器。它有 8GB 的 RAM,我应该如何分配它以最大限度地提高性能?我希望能够将我的整个数据库放入内存以获得最佳性能。数据库大约5GB。这可能吗?
我应该为查询缓存分配多少内存?InnoDB 缓冲池多少钱?计算机的其余部分(即非 MySQL 相关进程)多少钱?等等。
由于我没有使用 MyISAM,所以我真的不需要在密钥缓存中放入大量内存,对吗?
我正在改变我们的 DHCP/DNS 工作方式。目前我们有 3 个 DNS 服务器和一个 DHCP 框。它们都是虚拟机。
有一个循环依赖项,启动需要 NFS,而 NFS 需要 DNS。所以当我们重新启动东西时,事情可能会微妙地恢复,直到 DNS 启动,我们重新启动一些服务。
我想要做的是有一些低功耗服务器,可能是双核 Atom 或类似的,从 SSD 运行,以便它们快速启动。我想让整个事情尽可能接近瞬间启动。
理想情况下,我想使用 Ubuntu 11.10 或 Debian 6 作为操作系统。我对 Gentoo 或编译我自己的内核不感兴趣。这需要我自己合理支持。
除了 SSD 驱动器,我还可以采取哪些其他优化步骤来提高启动速度?
什么是 jbd2/dm-0-8,为什么它会消耗我所有的 I/O 使用量并导致 I/O 等待?
无论如何要禁用它?
Bonnie++ 结果:http : //pastebin.com/iQCWP1qp
$ sudo hdparm -t /dev/sda1
/dev/sda1:
Timing buffered disk reads: 108 MB in 3.02 seconds = 35.71 MB/sec
Run Code Online (Sandbox Code Playgroud) 我正在考虑设置我们的 mysql 数据库的复制,以便能够在我们的每个分支机构拥有本地从设备,同时在主办公室拥有主设备以提高我们分支机构的应用程序性能(显着)。
db 本身并不是那么大(<1gb),但我想知道;考虑 200-300 条记录更新/分钟上限:复制速度有多快?(假设,首先,一个 5mb 通用 dsl 连接,必要时更快 - 试图保持尽可能低的成本,但钱是有更多的)
是否批量复制整个表?复制是否按需完成,因为表中的每条记录都被更新(从文档中,我想我看到它是可配置的)?
笔记:
我正在评估 GlusterFS 和 Ceph,似乎 Gluster 是基于 FUSE 的,这意味着它可能不如 Ceph 快。但是看起来 Gluster 有一个非常友好的控制面板并且易于使用。
前几天Ceph被并入linux内核,这表明它的潜力更大,未来可能是一个不错的选择。
我想知道哪个(甚至两者中的?)是生产使用的更好选择?如果你能分享你的实践经验就好了
performance filesystems load-balancing distributed-filesystems
在 Apache 中使用 Worker MPM 时,您可以调整子进程数和每个子进程的服务器线程数。
各自的优缺点是什么?在什么情况下你会增加一个或另一个?
我知道 VMWare KB 不喜欢长时间运行的快照主要是由于两件事(在我看来)
拍摄大量快照可能会填满数据存储。快照只是增量文件。假设您有一个 50 Gig VMDK,几乎已满,并且您拍摄了快照。在您的快照中,您翻转每一位。您的增量文件也将约为 50 GB。再次快照,翻转位,另一个 50 Gig 增量文件。这些会很快失控。
提交大型快照会带来风险。整合快照时,您将增量更改写入原始 VMDK。这需要时间并带来风险,如果发生某些事情,您只会破坏 VMDK。
他们的警告似乎合乎逻辑。
话虽如此,永久关闭快照 VMDK 运行我的机器本质上是不好的吗?我想让我的树如下:
Snap 1 和 2 将在安装和配置基本系统后立即进行。这些是我计划经常刷新的机器,所以我只会让我的树看起来像下面这样:
删除 Snap2 并重新创建 Snap2。
由于以下原因,我看不出这会产生什么影响:
由于我只是安装了一个基本映像并在无法填满数据存储后立即获取了我的增量。假设我的基本映像只有 10 GB(在 50 GB 的精简配置磁盘上),即使我的增量翻转了每一位,我的最大总使用量也可能是 60 GB(已锁定的 10 GB 基本 VMDK + 50 GB 的增量在快照 VMDK 文件)。这假设我不创建任何进一步的快照。
由于我的用例不要求合并快照,因此我不会在合并增量时冒错误风险。当我移回 Snap1 并删除 Snap2 时,驻留在 Snap2 中的所有增量都会被删除。
存储负载完全相同,所以我应该获得相同的 IOPS。我知道某些文件(主要是系统文件)将存在于原始 VMDK 中,而其他文件(基础之后的所有文件)将驻留在增量中,但我不知道 ESXI 会如何关心。所有文件都在同一个物理数据存储上,因此性能应该相当于在没有快照的情况下引用原始 VMDK 中的所有内容。
有什么想法吗?ESXI 5.5,数据存储为 RAID 的 DAS。
我没有 vCenter …
惠普关于其 QLogic (fka Broadcom) NetXtreme II 适配器的白皮书(其中包括我正在测试的特定 NIC)指出(第 7 页),它们对于高达 256 字节/数据包的数据包的小数据包性能高于 5,000,000 数据包/秒。
在我对一个应用程序的测试中,我禁用了除 UDP 接收部分之外的所有处理,我只能达到 120,000 个数据包/秒。数据包均匀分布在 12 个多播组上。
我注意到当我提高 UDP 发送速率并在 120,000 左右达到最大值时,有一个内核(2 个插槽上的每个内核中有 12 个内核)其负载逐渐增加。但我不知道那个核心在做什么以及为什么。这不是我的应用程序中的单线程瓶颈,因为我是否为所有多播组运行应用程序的单个实例或每个处理 1 个多播组的 12 个实例都没有关系。所以瓶颈不是我的接收器应用程序。
MSI 已启用(通过设备管理器中的“资源类型”视图进行验证)并且 RSS 也在 NIC 设置中启用,具有 8 个队列。那么是什么执着于那个核心呢?所有 NIC 卸载功能当前都处于开启状态,但将它们关闭并没有帮助。
那么瓶颈可能在哪里呢?
系统详情:
有哪些工具可以分析 MySQL,例如 MSSQL 2000+ 如何使用 SQL Profiler?
我想跟踪诸如执行的 SQL 语句、执行时间、执行计划等内容。
performance ×10
mysql ×3
database ×2
filesystems ×2
storage ×2
apache-2.2 ×1
boot ×1
centos ×1
hardware ×1
innodb ×1
io ×1
linux ×1
memory ×1
mpm-worker ×1
networking ×1
postgresql ×1
replication ×1
snapshot ×1
threads ×1
udp ×1
vmware-esxi ×1