<commit_before>.. _guide-optimizing:

==============
 Optimizing（优化）
==============

Introduction
============
默认的配置做了很多妥协。这不是对于任意一个独立的案例都是最优的，但是适合大多数情况。

这里有一些针对特殊案例的优化。

优化可以影响运行环境的不同属性（性能指标），如：任务的执行时间、内存使用、高性能是的响应速度。
Optimizations can apply to different properties of the running environment,
be it the time tasks take to execute, the amount of memory used, or
responsiveness at times of high load.

Ensuring Operations
===================

在`Programming Pearls`_书中，<NAME> 通过问下面的问题，提出了`back-of-the-envelope calculations` 理论:

    ❝ How much water flows out of the Mississippi River in a day? ❞

这个练习 [*]_ 的目的是展示： 一个系统在一个时间片里能处理多少数据是有限制的。
`Back of the envelope caculations` 可以作为一种提升时间效率的手段。
The point of this exercise [*]_ is to show that there is a limit
to how much data a system can process in a timely manner.
Back of the envelope calculations can be used as a means to plan for this
ahead of time.

在Celery里，如果一个任务需要10分钟来完成，并且每分钟有10个新任务产生，这个队列将永远也不会为空。
这就是为什么监视队列长度，是非常重要的的原因。

其中一种方案是使用:ref:`using Munin <monitoring-munin>`。
你应该建立告警机制 —— 当队列长度到达一个不可接受的长度时，立即通知你。
这样，你可以立即采取某种操作，比如：增加新的`worker`节点 或 移除不必要的任务。

.. [*] The chapter is available to read for free here:
       `The back of the envelope`_.  The book is a classic text. Highly
       recommended.

.. _`Programming Pearls`: http://www.cs.bell-labs.com/cm/cs/pearls/

.. _`The back of the envelope`:
    http://books.google.com/books?id=kse_7qbWbjsC&pg=PA67<commit_msg>nothing.<commit_after>.. _guide-optimizing:

==============
 Optimizing（优化）
==============

Introduction
============
默认的配置做了很多妥协。这不是对于任意一个独立的案例都是最优的，但是适合大多数情况。

这里有一些针对特殊案例的优化。

优化可以影响运行环境的不同属性（性能指标），如：任务的执行时间、内存使用、高性能是的响应速度。
Optimizations can apply to different properties of the running environment,
be it the time tasks take to execute, the amount of memory used, or
responsiveness at times of high load.

Ensuring Operations
===================

在 `Programming Pearls`_ 书中，<NAME> 通过问下面的问题，提出了 `back-of-the-envelope calculations` 理论:

    ❝ How much water flows out of the Mississippi River in a day? ❞

这个练习 [*]_ 的目的是展示： 一个系统在一个时间片里能处理多少数据是有限制的。
`Back of the envelope caculations` 可以作为一种提升时间效率的手段。
The point of this exercise [*]_ is to show that there is a limit
to how much data a system can process in a timely manner.
Back of the envelope calculations can be used as a means to plan for this
ahead of time.

在Celery里，如果一个任务需要10分钟来完成，并且每分钟有10个新任务产生，这个队列将永远也不会为空。
这就是为什么监视队列长度，是非常重要的的原因。

其中一种方案是使用:ref:`using Munin <monitoring-munin>`。
你应该建立告警机制 —— 当队列长度到达一个不可接受的长度时，立即通知你。
这样，你可以立即采取某种操作，比如：增加新的 `worker` 节点 或 移除不必要的任务。

.. [*] The chapter is available to read for free here:
       `The back of the envelope`_.  The book is a classic text. Highly
       recommended.

.. _`Programming Pearls`: http://www.cs.bell-labs.com/cm/cs/pearls/

.. _`The back of the envelope`:
    http://books.google.com/books?id=kse_7qbWbjsC&pg=PA67
{'fraction_non_alphanumeric': 0.12369337979094076, 'fraction_numerical': 0.004878048780487805, 'mean_word_length': 5.095541401273885, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7358176', 'n_tokens_mistral': 1352, 'n_tokens_neox': 1440, 'n_words': 308}