You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jm...@apache.org on 2014/10/06 22:16:15 UTC
git commit: Warn on startup if swap file enabled on Windows
Repository: cassandra
Updated Branches:
refs/heads/cassandra-2.1 af863d7d4 -> b7609903b
Warn on startup if swap file enabled on Windows
patch by Josh McKenzie; reviewed by Philip Thompson for CASSANDRA-7316
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b7609903
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b7609903
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b7609903
Branch: refs/heads/cassandra-2.1
Commit: b7609903b0046031c6a54f1ee93a785348472df1
Parents: af863d7
Author: Joshua McKenzie <jo...@datastax.com>
Authored: Mon Oct 6 15:13:10 2014 -0500
Committer: Joshua McKenzie <jo...@datastax.com>
Committed: Mon Oct 6 15:13:10 2014 -0500
----------------------------------------------------------------------
conf/cassandra-env.ps1 | 73 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 73 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b7609903/conf/cassandra-env.ps1
----------------------------------------------------------------------
diff --git a/conf/cassandra-env.ps1 b/conf/cassandra-env.ps1
index 168f322..47f4fa3 100644
--- a/conf/cassandra-env.ps1
+++ b/conf/cassandra-env.ps1
@@ -54,6 +54,79 @@ Function BuildClassPath
#-----------------------------------------------------------------------------
Function CalculateHeapSizes
{
+ # Check if swapping is enabled on the host and warn if so - reference CASSANDRA-7316
+
+ $osInfo = Get-WmiObject -class "Win32_computersystem"
+ $autoPage = $osInfo.AutomaticManagedPageFile
+
+ if ($autoPage)
+ {
+ echo "*---------------------------------------------------------------------*"
+ echo "*---------------------------------------------------------------------*"
+ echo ""
+ echo " WARNING! Automatic page file configuration detected."
+ echo " It is recommended that you disable swap when running Cassandra"
+ echo " for performance and stability reasons."
+ echo ""
+ echo "*---------------------------------------------------------------------*"
+ echo "*---------------------------------------------------------------------*"
+ }
+ else
+ {
+ $pageFileInfo = Get-WmiObject -class "Win32_PageFileSetting" -EnableAllPrivileges
+ $pageFileCount = $PageFileInfo.Count
+ if ($pageFileInfo)
+ {
+ $files = @()
+ $sizes = @()
+ $hasSizes = $FALSE
+
+ # PageFileCount isn't populated and obj comes back as single if there's only 1
+ if ([string]::IsNullOrEmpty($PageFileCount))
+ {
+ $PageFileCount = 1
+ $files += $PageFileInfo.Name
+ if ($PageFileInfo.MaximumSize -ne 0)
+ {
+ $hasSizes = $TRUE
+ $sizes += $PageFileInfo.MaximumSize
+ }
+ }
+ else
+ {
+ for ($i = 0; $i -le $PageFileCount; $i++)
+ {
+ $files += $PageFileInfo[$i].Name
+ if ($PageFileInfo[$i].MaximumSize -ne 0)
+ {
+ $hasSizes = $TRUE
+ $sizes += $PageFileInfo[$i].MaximumSize
+ }
+ }
+ }
+
+ echo "*---------------------------------------------------------------------*"
+ echo "*---------------------------------------------------------------------*"
+ echo ""
+ echo " WARNING! $PageFileCount swap file(s) detected"
+ for ($i = 0; $i -lt $PageFileCount; $i++)
+ {
+ $toPrint = " Name: " + $files[$i]
+ if ($hasSizes)
+ {
+ $toPrint = $toPrint + " Size: " + $sizes[$i]
+ $toPrint = $toPrint -replace [Environment]::NewLine, ""
+ }
+ echo $toPrint
+ }
+ echo " It is recommended that you disable swap when running Cassandra"
+ echo " for performance and stability reasons."
+ echo ""
+ echo "*---------------------------------------------------------------------*"
+ echo "*---------------------------------------------------------------------*"
+ }
+ }
+
# Validate that we need to run this function and that our config is good
if ($env:MAX_HEAP_SIZE -and $env:HEAP_NEWSIZE)
{