<commit_before>---
title: Deploying a Large Application
---

This topic describes constraints and recommended settings for deploying applications between 750 MB and 1 GB to <%=vars.product_full%>.

## <a id="consid_limits"></a>Deployment Considerations and Limitations ##

<%=vars.product_short%> supports application uploads up to 1 GB. 

The deployment process involves uploading, staging, and starting the app. Your app must successfully complete each of these phases within the time limits that your administrator establishes for each phase. The default time limits for the phases are as follows:

* Upload: 15 minutes
* Stage: 15 minutes
* Start: 60 seconds

<p class="note"><strong>Note</strong>: Your administrator can change these defaults. Check with your administrator for the actual time limits set for app deployment.</p>

To deploy large apps to <%=vars.product_short%>, ensure the following:

* Your network connection speed is sufficient to upload your app within the 15 minute limit. Pivotal recommends a minimum speed of 874 KB/s. 

<p class="note"><strong>Note</strong>: <%=vars.product_short%> provides an authorization token that is valid for a minimum of 20 minutes.</p> 

* The total size of the files to upload for your app does not exceed 1 GB.

* You allocate enough memory for all instances of your app. Use either the `-m` flag with `cf push` or set an app memory value in your `manifest.yml` file.

* You allocate enough disk space for all instances of your app. Use either the `-k` flag with `cf push` or set a disk space allocation value in your `manifest.yml` file.

* If you use an app manifest file, `manifest.yml`, be sure to specify adequate values for your app for attributes such as app memory, app start timeout, and disk space allocation.

    For more information on using manifests, refer to the [Deploying with Application Manifests](./manifest.html) topic.

* You push only the files that are necessary for your application. 

    To meet this requirement, push only the directory for your application, and remove unneeded files or use the `.cfignore` file to [specify excluded files](./prepare-to-deploy.html#exclude).

* You configure cf CLI staging, startup, and timeout settings to override settings in the manifest, as necessary.

  * `CF_STAGING_TIMEOUT`: Controls the maximum time that the cf CLI waits for an app to stage after cf has successfully uploaded and packaged the app. Value set in minutes.
  * `CF_STARTUP_TIMEOUT`: Controls the maximum time that the cf CLI waits for an app to start. Value set in minutes.
  * `cf push -t TIMEOUT`: Controls the maximum time that the cf CLI waits for an app to start. When you use this flag, cf ignores any app start timeout value set in the manifest or in the `CF_STARTUP_TIMEOUT` environment variable. Value set in seconds.

    For more information on using the cf CLI to deploy apps, refer to the [Push section ](../installcf/whats-new-v6.html#push) of the Getting Started with the cf CLI topic.

    <p class="note"><strong>Note</strong>: Your app might successfully start even though the CLI reports <code>App failed</code> because of the differences between the phase timeout values you specify in the CLI or manifest and those set by your administrator. For example, your admin sets a start value of 180 seconds. You set a start value of 120 seconds in the manifest, but override this on the CLI with a start value of 60 seconds and deploy the app. In this scenario, your app might successfully start even though the CLI reports that the app fails because of the longer start timeout value specified by the administrator. Run <code>cf apps APP_NAME</code> to review the actual status of your app.</p> 

## <a id="limits_table"></a>Default Settings and Limitations Summary Table ##

This table provides summary information of constraints and default settings to consider when you deploy a large app to <%=vars.product_short%>.

<table border="1" class="nice" >
<tr>
<th>Setting</th>
<th>Note</th>
</tr>
<tr>
<td>App Package Size </td>
<td>Maximum: 1 GB</td>
</tr>
<td>Authorization Token Grace Period</td>
<td>Default: 20 minutes, minimum</td>
</tr>
<tr>
<td><code>CF_STAGING_TIMEOUT</code></td>
<td>CLI environment variable<br />
Default: 15 minutes</td>
</tr>
<tr>
<td><code>CF_STARTUP_TIMEOUT</code></td>
<td>CLI environment variable<br />
Default: 5 minutes</td>
</tr>
<tr>
<td><code>cf push -t TIMEOUT</code></td>
<td>App start timeout maximum<br />
Default: 60 seconds<br /></td>
</tr>
<tr>
<td>Disk Space Allocation</td>
<td>Default: 1024 MB </td>
</tr>
<tr>
<td>Internet Connection Speed</td>
<td>Recommended Minimum: 874 KB/s</td>
</tr>
</table>

<commit_msg>remove whitespace from end of large-app-deploy.html<commit_after>---
title: Deploying a Large Application
---

This topic describes constraints and recommended settings for deploying
applications between 750 MB and 1 GB to <%=vars.product_full%>.

## <a id="consid_limits"></a>Deployment Considerations and Limitations ##

<%=vars.product_short%> supports application uploads up to 1 GB.

The deployment process involves uploading, staging, and starting the app.
Your app must successfully complete each of these phases within the time limits
that your administrator establishes for each phase.
The default time limits for the phases are as follows:

* Upload: 15 minutes
* Stage: 15 minutes
* Start: 60 seconds

<p class="note"><strong>Note</strong>: Your administrator can change these defaults. Check with your administrator for the actual time limits set for app deployment.</p>

To deploy large apps to <%=vars.product_short%>, ensure the following:

* Your network connection speed is sufficient to upload your app within the 15 minute limit. Pivotal recommends a minimum speed of 874 KB/s.

<p class="note"><strong>Note</strong>: <%=vars.product_short%> provides an authorization token that is valid for a minimum of 20 minutes.</p>

* The total size of the files to upload for your app does not exceed 1 GB.

* You allocate enough memory for all instances of your app. Use either the `-m` flag with `cf push` or set an app memory value in your `manifest.yml` file.

* You allocate enough disk space for all instances of your app. Use either the `-k` flag with `cf push` or set a disk space allocation value in your `manifest.yml` file.

* If you use an app manifest file, `manifest.yml`, be sure to specify adequate values for your app for attributes such as app memory, app start timeout, and disk space allocation.

    For more information on using manifests, refer to the [Deploying with Application Manifests](./manifest.html) topic.

* You push only the files that are necessary for your application.

    To meet this requirement, push only the directory for your application, and remove unneeded files or use the `.cfignore` file to [specify excluded files](./prepare-to-deploy.html#exclude).

* You configure cf CLI staging, startup, and timeout settings to override settings in the manifest, as necessary.

  * `CF_STAGING_TIMEOUT`: Controls the maximum time that the cf CLI waits for an app to stage after cf has successfully uploaded and packaged the app. Value set in minutes.
  * `CF_STARTUP_TIMEOUT`: Controls the maximum time that the cf CLI waits for an app to start. Value set in minutes.
  * `cf push -t TIMEOUT`: Controls the maximum time that the cf CLI waits for an app to start. When you use this flag, cf ignores any app start timeout value set in the manifest or in the `CF_STARTUP_TIMEOUT` environment variable. Value set in seconds.

    For more information on using the cf CLI to deploy apps, refer to the [Push section ](../installcf/whats-new-v6.html#push) of the Getting Started with the cf CLI topic.

    <p class="note"><strong>Note</strong>: Your app might successfully start even though the CLI reports <code>App failed</code> because of the differences between the phase timeout values you specify in the CLI or manifest and those set by your administrator. For example, your admin sets a start value of 180 seconds. You set a start value of 120 seconds in the manifest, but override this on the CLI with a start value of 60 seconds and deploy the app. In this scenario, your app might successfully start even though the CLI reports that the app fails because of the longer start timeout value specified by the administrator. Run <code>cf apps APP_NAME</code> to review the actual status of your app.</p>

## <a id="limits_table"></a>Default Settings and Limitations Summary Table ##

This table provides summary information of constraints and default settings to consider when you deploy a large app to <%=vars.product_short%>.

<table border="1" class="nice" >
<tr>
<th>Setting</th>
<th>Note</th>
</tr>
<tr>
<td>App Package Size </td>
<td>Maximum: 1 GB</td>
</tr>
<td>Authorization Token Grace Period</td>
<td>Default: 20 minutes, minimum</td>
</tr>
<tr>
<td><code>CF_STAGING_TIMEOUT</code></td>
<td>CLI environment variable<br />
Default: 15 minutes</td>
</tr>
<tr>
<td><code>CF_STARTUP_TIMEOUT</code></td>
<td>CLI environment variable<br />
Default: 5 minutes</td>
</tr>
<tr>
<td><code>cf push -t TIMEOUT</code></td>
<td>App start timeout maximum<br />
Default: 60 seconds<br /></td>
</tr>
<tr>
<td>Disk Space Allocation</td>
<td>Default: 1024 MB </td>
</tr>
<tr>
<td>Internet Connection Speed</td>
<td>Recommended Minimum: 874 KB/s</td>
</tr>
</table>
{'fraction_non_alphanumeric': 0.0888722927557879, 'fraction_numerical': 0.00938866958284434, 'mean_word_length': 4.5467455621301776, 'pattern_counts': {'":': 0, '<': 171, '<?xml version=': 0, '>': 171, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, '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': '6946969', 'n_tokens_mistral': 2698, 'n_tokens_neox': 2481, 'n_words': 1325}