Articles of 性能调优

在高使用率的服务器上寻找降低性能的问题

我通过谷歌计算引擎托pipe一个服务器用于各种目的,最着名的是一个Minecraft服务器,它收到大量的stream量和使用量。 我们所说的CPU使用率相当于150%,每秒读写50次,磁盘每秒钟读取10次,networking数据包每秒钟减less600次,因此使用率相当高。 我遇到的问题是,尽pipe服务器完全能够处理这么多的使用,但是延迟和/或处理仍然存在问题。 有很多地方出于蓝色,一个只需要十分之一秒执行的过程需要40秒甚至更长的时间。 以下是我们已经考虑的可能的问题以及我们已经实施的解决scheme: CPU使用率 我们一直使用100-250%的CPU,4个vCPU(所以我们不应该有任何forms的性能限制)。 磁盘IO 我们最多可以达到每秒80次读取和30次写入,但是使用SSD的持续随机IOPS限制为1.5k,所以这也不成问题。 我们最大读取速度为1.6 MB,每秒写入速度为.75 MB,但是使用的SSD的持续吞吐量限制为24 MB / s。 networking 我们最多可以接收600个数据包(平均400)和每秒发送1700个数据包(平均800)。 我不确定我们如何能够以任何方式改善这一点,但是当networking供应商是Google的时候,我不明白这会是什么问题。 我们收到28 KB,每秒发送280 KB。 我们的networking速度testing显示,我们有能力处理数千次这个值。 最不可能涉及到这一点,因为大部分遇到的问题涉及服务器端的问题。 我们不能通过拆分用户连接来进行任何forms的负载平衡,因为它们必须全部连接到一台托pipeMinecraft世界的服务器。 内存 我们有5 GB的RAM专用于有困难的进程。 这使我怀疑它的参与,因为我们很less使用它的一半以上。 Java的 我们的Minecraft服务器jar是Minecraft,是用Java编写的。 我们正在使用以下Java版本: java version "1.7.0_111" OpenJDK Runtime Environment (IcedTea 2.6.7) (7u111-2.6.7-1~deb8u1) OpenJDK 64-Bit Server VM (build 24.111-b01, mixed mode) 我们使用以下参数来执行jar: -server -Xmx5G -Xms5G -Xmn2500M -XX:+UseConcMarkSweepGC -XX:+UseParNewGC […]

如何创build一个非高速caching的nginx反向代理?

Nginx应该很快 – 至less有人这样说。 我无法快速获得nginx。 对于基准testing,我使用多个configuration来模拟高负载。 所以我试图负载平衡单个服务器(我知道负载平衡单个服务器是无用的,但testing负载平衡器本身是有效的)。 我已经build立了一个已经优化的Apache反向代理作为参考。 我通过nginx获得80tps左右,当我尝试从同一个后端服务器得到相同的 – 没有caching的文件时,使用apache约350tps。 当然硬件/操作系统是一样的(目前的双核CPU,2G内存,Ubuntu服务器16.04)。 我尝试过更改工作人员,最大连接数,轮询方法,代理缓冲区大小,等待时间和客户端缓冲区。 我可以看到系统负载很低,一个nginx使用大约1%的CPU,连接等待5到6秒左右。 由于我想测量反向代理的性能,我不想在此testing中caching任何内容。 所以问题是:如何优化nginx作为非caching逆向代理的性能? 示例siege-command: siege -c 100 -b -r 100 -v <loadbalancer>/favicon.ico 更新:根据要求提供一些configuration。 为了保持serverfault的一致性,请回答一些关于参数的有用信息。 user www-data; worker_processes 2; pid /run/nginx.pid; #thread_pool default threads=1500 max_queue=65536; worker_rlimit_nofile 40000; events { worker_connections 768; #multi_accept on; #use epoll; } http { #aio threads=default; #proxy_buffers 32 4m; #proxy_busy_buffers_size […]

MariaDB占用100-200%的CPU

服务器规格 RAM CPU STORAGE 80 GB 20 Cores 1536 GB SSD TRANSFER NETWORK IN NETWORK OUT 20 TB 40 Gbps 8000 Mbps 这是显示状态的结果: show status: Aborted_clients 2 Aborted_connects 0 Access_denied_errors 0 Acl_column_grants 0 Acl_database_grants 0 Acl_function_grants 0 Acl_procedure_grants 0 Acl_proxy_users 2 Acl_role_grants 0 Acl_roles 0 Acl_table_grants 0 Acl_users 9 Aria_pagecache_blocks_not_flushed 0 Aria_pagecache_blocks_unused 15706 Aria_pagecache_blocks_used 2 […]

DB2插入性能 – 如何衡量

[来自计算器] 我试图find一种方法来加快我的插入到DB2 9.7.1(Ubuntu的Linux) 我正在看vmstat并试图通过db2 get snapshot命令收集一些统计信息,但是我不能找出哪些数字即时寻找能够看到麻烦的地方。 我已经阅读了诸如http://www.eggheadcafe.com/software/aspnet/35692526/question-multiple-row-in.aspx和http://www.ibm.com/developerworks/data/library / tips / dm-0403wilkins /和窍门一样 ALTER TABLE lalala APPEND ON 有点作用(dd if = / dev / zero和insert之间的区别仍然是10的因素),但我希望能够find计数器或其他性能指标,以真正显示为什么使用这些技巧是合理的。 例如: 什么是所谓的度量显示,它是缓冲区页面分配(FSCR的东西),这是问题 我在哪里看到插入时间受到聚集索引的阻碍? 我发现db2top非常有用,但是我仍然在寻找更直接的“这是你的瓶颈”的方法

如何计算我的服务器所需的调整量?

我有一个运行几个离散的Python的服务器,大部分时间Java应用程序将数据导入PostGreSQL数据库。 我想从那些谁有经验调整企业级服务器的人知道我怎么去计算整体的方式调整我的服务器所需的调整量,例如vm.swappiness,vm.overcommit_ratio和我需要的其他数字调音服务器。 我试图在我的服务器上启用sar来捕获每日数字,但是这些更多地沿着总数的方向,我无法弄清楚如何为我的应用程序分配内存。 帮助将不胜感激。 谢谢。

在Linux服务器上极其精确地调整MySQL性能

我想知道所有的关键点,MySQL可以通过my.cnf或其他方法,库和工具在Linux服务器上进行性能优化。 提示和技巧和阴凉的东西也欢迎。 由于目标服务器体系结构非常重要,因此可以围绕此示例目标体系结构来回答您的问题 1 GB的RAM(非ecc) 2.2GHz双Xeon 文件系统ext3或reiserfs(欢迎提供build议) 7200转硬盘 几个WordPress的安装,每秒至less5-10个请求。 一个很常见的设置,如果你问我,这里没什么特别的。 因此,我想就如何在这样一个目标服务器上调整MySQL安装的问题进行讨论,直到您从MySQL服务器的angular度来看,您无法真正做得更多,从而获得更好的性能。

MySQL托pipe:什么是推荐的规格和w

我有两个MySQL托pipe的具体情况。 1)我有一个情况,我有一个单一的MySQL数据库2000以上的并发用户。 他们不是简单的networking用户,而是真正的商业用户,他们需要连续8-9个工作时间连接写和读。 什么应该是MySQL服务器的规格,即处理器,内存,CPU数量等? 双核四核Xeon 5500系列能满足吗? 或者我可以使用至强3400系列? 多余的内存有帮助吗? 有人build议集群! 有必要吗? 2)我必须为一个客户端设置大约300个网站的托pipe服务。 他们预计在300个MySQL数据库之间大约有3000到6000个并发用户。 什么应该是服务器的理想configuration,或者我应该分担到多个服务器的负载? 3)添加更多的核心是否帮助MySQL或者是原始CPU的速度更重要? build议欢迎

修剪无用的Apache模块

我正在运行一个有100个站点的共享主机环境 – 我只是查看了apache加载/使用的所有模块,其中一些我不知道他们在做什么,或者他们是否有用。 。 core_module (static) mpm_prefork_module (static) http_module (static) so_module (static) unique_id_module (shared) auth_basic_module (shared) auth_digest_module (shared) authn_file_module (shared) authn_alias_module (shared) authn_anon_module (shared) authn_dbm_module (shared) authn_default_module (shared) authz_host_module (shared) authz_user_module (shared) authz_owner_module (shared) authz_groupfile_module (shared) authz_dbm_module (shared) authz_default_module (shared) include_module (shared) log_config_module (shared) logio_module (shared) env_module (shared) ext_filter_module (shared) mime_magic_module (shared) expires_module (shared) headers_module […]

我怎样才能决定执行IO的性质?

我正在使用Linux(3.2.12-3.2.4)。 我有几个“syncer”进程,在一个循环中更新大量和大量的SQLite数据库文件。 数据库大小从1 MB到几GB不等。 我有一个“search器”过程,可以查询这些数据库并返回匹配的结果。 我期待调整一些内核参数以获得最大的IO性能。

Linux内核3 TCP IP调优

我发现了一些关于调整/etc/sysctl.conf linux TCP / IP协议栈参数以获得高带宽连接的资源,但都是指内核2.6。 有没有人有关于如何调整较新的内核3.x的build议? 这种调整仍然需要或新的内核已经有“良好”的默认?