AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-9461

kubanczyk's questions

Martin Hope
kubanczyk
Asked: 2016-02-26 05:49:22 +0800 CST

redmine 糟糕的写入性能(更新不是真正的多线程)

  • 0

(已经自我回答)我正在与大约 100 个用户的 redmine 性能不佳作斗争。为了测试它,我设置了一个简单的场景来更新五个不同示例问题的“完成百分比”。所有更新都在同一秒开始,使用curl. 令我惊讶的是,redmine 中的更新似乎是序列化的(我的意思是不是多线程的),时序如下:

real    0m1.122s
real    0m1.404s
real    0m2.258s
real    0m2.782s
real    0m3.151s
real    0m3.336s

或者另一种尝试,当其他会话的一些处理也受到阻碍时:

real    0m7.492s
real    0m7.803s
real    0m8.045s
real    0m8.246s
real    0m8.597s
real    0m8.825s

production.log在处理大量 SQL 查询后的关键时刻是 COMMIT 阶段。请注意 COMMIT 是如何在毫秒内完成的,但在 COMMIT 之间发生了一些神秘的事情,不仅将它们序列化,而且需要几秒钟才能达到 Completed 状态。此日志摘录完好无损 - 我没有删除中间的任何行。

   (0.6ms)  SELECT COUNT(*) FROM `custom_workflows` WHERE `custom_workflows`.`active` = 1 AND `custom_workflows`.`observable` = 'issue' AND (is_for_all OR EXISTS (SELECT * FROM custom_workflows_projects WHERE project_id=123 AND custom_workflow_id=id))
   (30.1ms)  COMMIT
Redirected to http://redmine.mydomain.local/issues/11973
Completed 302 Found in 7418.4ms (ActiveRecord: 135.8ms)
   (0.6ms)  SELECT COUNT(*) FROM `custom_workflows` WHERE `custom_workflows`.`active` = 1 AND `custom_workflows`.`observable` = 'issue' AND (is_for_all OR EXISTS (SELECT * FROM custom_workflows_projects WHERE project_id=123 AND custom_workflow_id=id))
   (24.8ms)  COMMIT
Redirected to http://redmine.mydomain.local/issues/9240
Completed 302 Found in 7738.3ms (ActiveRecord: 57.4ms)
   (0.4ms)  SELECT COUNT(*) FROM `custom_workflows` WHERE `custom_workflows`.`active` = 1 AND `custom_workflows`.`observable` = 'issue' AND (is_for_all OR EXISTS (SELECT * FROM custom_workflows_projects WHERE project_id=123 AND custom_workflow_id=id))
   (25.9ms)  COMMIT
Redirected to http://redmine.mydomain.local/issues/9614
Completed 302 Found in 7949.0ms (ActiveRecord: 135.7ms)
   (0.5ms)  SELECT COUNT(*) FROM `custom_workflows` WHERE `custom_workflows`.`active` = 1 AND `custom_workflows`.`observable` = 'issue' AND (is_for_all OR EXISTS (SELECT * FROM custom_workflows_projects WHERE project_id=123 AND custom_workflow_id=id))
   (24.6ms)  COMMIT
Redirected to http://redmine.mydomain.local/issues/12016
Completed 302 Found in 8058.5ms (ActiveRecord: 102.5ms)
   (0.5ms)  SELECT COUNT(*) FROM `custom_workflows` WHERE `custom_workflows`.`active` = 1 AND `custom_workflows`.`observable` = 'issue' AND (is_for_all OR EXISTS (SELECT * FROM custom_workflows_projects WHERE project_id=123 AND custom_workflow_id=id))
   (21.2ms)  COMMIT
Redirected to http://redmine.mydomain.local/issues/8853
Completed 302 Found in 8472.5ms (ActiveRecord: 90.4ms)
   (0.5ms)  SELECT COUNT(*) FROM `custom_workflows` WHERE `custom_workflows`.`active` = 1 AND `custom_workflows`.`observable` = 'issue' AND (is_for_all OR EXISTS (SELECT * FROM custom_workflows_projects WHERE project_id=123 AND custom_workflow_id=id))
   (27.9ms)  COMMIT
Redirected to http://redmine.mydomain.local/issues/10007
Completed 302 Found in 8700.4ms (ActiveRecord: 137.4ms)

我已经检查过的内容:

  • 乘客状态的线程数绰绰有余
  • apache2 httpd 的进程数绰绰有余
  • mysql 5.1 使用 innodb
  • innotop 不显示锁
  • innotop 不会过多的 I/O
  • iostat 没有显示过多的 I/O(大约 10-15 IOPS,磁盘最大 17% 的时间使用)
  • top 没有显示过多的 CPU 使用率(最多可能 400% 的 70%)。
redmine
  • 1 个回答
  • 81 Views
Martin Hope
kubanczyk
Asked: 2013-10-24 13:11:59 +0800 CST

具有大量主轴的 RAID - 如何安全地使用“浪费”的空间

  • 1

我有相当多的 RAID 阵列(服务器控制器以及中端 SAN 存储)都遇到相同的问题:几乎没有足够的心轴来保持峰值 I/O 性能,以及大量未使用的磁盘空间。

我想这是一个普遍的问题,因为供应商提供了 300 GB 容量的最小驱动器,但自最小驱动器为 36 GB 以来,随机 I/O 性能并没有真正增长太多。

一个例子是一个有 300 GB 的数据库,需要 3200 IOPS 的随机性能,所以它有 16 个磁盘(4800 GB 减去 300 GB,我们有 4.5 TB 的浪费空间)。

另一个常见示例是响应时间敏感的 OLTP 数据库的重做日志。重做日志有自己的 300 GB 镜像,但占用 30 GB:浪费了 270 GB。

我希望看到的是一种适用于 Linux 和 Windows 环境的系统方法。如何设置空间以便提醒系统管理员团队注意阻碍主数据库/应用程序性能的风险?或者,更好的是,免受这种风险?我想到的典型情况是“哦,我有一个非常大的 zip 文件,我在哪里解压缩它?嗯,让我们看看df -h,我们很快就会弄清楚……”我不强调严格性安全性(系统管理员被信任以善意行事),但方法的整体简单性。

对于 Linux,最好有一个定制的文件系统来将 I/O 速率限制在非常低的水平——这可能吗?

storage
  • 2 个回答
  • 105 Views
Martin Hope
kubanczyk
Asked: 2009-06-17 02:19:00 +0800 CST

从 syslogd 迁移到 syslog-ng 期间的 FQDN

  • 3

我正在 SLES 9 服务器上从 syslogd 迁移到 syslog-ng(库存版本 1.6.8 的 syslog-ng)。服务器恰好是一些远程记录器的日志主机。

当涉及到日志中打印的主机名时,如何配置 syslog-ng 以确保与 syslogd 行为的最大兼容性?有一些自定义脚本可以分析日志,这些脚本可能依赖于主机名来保持不变。其中一些已被 syslogd 报告为 FQDN,如果它们现在被剥离,肯定会发生名称冲突。

顺便说一句,我没有使用 syslogd -s 或 -l 选项来去除 FQDN。

我目前对 syslog-ng 选项的研究快照(更新:这是不正确的,请参阅我的自我回答):

options {
        check_hostname(yes);    # invalid chars?
        keep_hostname(yes);     # yes - if there is a hostname embedded in the message, it will
                                #   be kept without overwrite/append
                                #   see https://lists.balabit.hu/pipermail/syslog-ng/2002-August/003669.html
                                #   note: RFC3164 allows either short hostname or IP, no FQDN

        use_dns(yes);           # if there is no hostname embedded in the message, try DNS

        use_fqdn(no);           # do not try to expand everything to FQDN? strip all FQDNs? strip only DNS-resolved FQDNs?
                                # old syslogd behaviour (?): use embedded hostname, print fqdn (strip only local
                                #   domain + strip "-s" domains + strip domains for "-l" hosts)

        chain_hostnames(no);    # if keep_hostname(no) or hostname not embedded, attach (rather than assign)
                                #   hostname/IP of *sender*; same as long_hostnames(off)

        sync(0);                # sync immediately
};

我发现 syslog-ng 手册有些不足。

linux syslog sles
  • 3 个回答
  • 4241 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve