Eddiespradley_Performance - Version 1.0.0

Version Notes

Initial Release

Download this release

Release Info

Developer Eddie Spradley
Extension Eddiespradley_Performance
Version 1.0.0
Comparing to
See all releases


Version 1.0.0

app/code/community/Eddiespradley/Performance/Block/Left.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ # app/code/community/eddiespradley/performance/Block/Left.php
4
+
5
+ class Eddiespradley_Performance_Block_Left extends Mage_Core_Block_Template
6
+ {
7
+
8
+ function getVar()
9
+ {
10
+ echo "123";
11
+ }
12
+
13
+
14
+
15
+ }
16
+
app/code/community/Eddiespradley/Performance/Block/Main-.php ADDED
@@ -0,0 +1,119 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php //004ff
2
+ //
3
+ // IONCUBE ONLINE ENCODER EVALUATION
4
+ // THIS FILE IS LICENSED TO BE USED FOR ENCODER TESTING
5
+ // PURPOSES ONLY AND SHOULD NOT BE DISTRIBUTED
6
+ //
7
+ if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file <b>'.__FILE__.'</b> requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the <a href="http://www.ioncube.com/lw/">ionCube Loader Wizard</a> to assist with installation.');exit(199);
8
+
9
+ ?>
10
+ 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
app/code/community/Eddiespradley/Performance/Block/Main.php ADDED
@@ -0,0 +1,272 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ # app/code/community/eddiespradley/performance/Block/Left.php
4
+
5
+ class Eddiespradley_Performance_Block_Main extends Mage_Core_Block_Template
6
+ {
7
+
8
+ var $phpMinVersion = '5.4.0';
9
+ var $mysqlMinVersion = '5.6.0';
10
+
11
+
12
+ function getPhpVersion()
13
+ {
14
+ return PHP_VERSION;
15
+ }
16
+
17
+ function getPhpMemory()
18
+ {
19
+ return ini_get('memory_limit');
20
+ }
21
+
22
+ function getPhpInputVars()
23
+ {
24
+ return ini_get('max_input_vars');
25
+ }
26
+
27
+ function getPhpRecommendation()
28
+ {
29
+ $diff = version_compare(PHP_VERSION, $this->phpMinVersion);
30
+
31
+ if($diff < 0)
32
+ return "Keeping PHP up-to-date has huge impact on Magento speed. You should upgrade to {$this->phpMinVersion}";
33
+
34
+
35
+ return "Your PHP version appeasrs to be good.";
36
+ }
37
+
38
+
39
+ function getMysqlVersion()
40
+ {
41
+ $vers = Mage::getModel('esperformance/versions');
42
+ return $vers->getMysqlVersion();
43
+ }
44
+
45
+ function getMysqlRecommendation()
46
+ {
47
+ $diff = version_compare($this->getMysqlVersion(), $this->mysqlMinVersion);
48
+
49
+ if($diff < 0)
50
+ return "Keeping MySQL up-to-date has a huge impact on Magento spped. You should upgrade to {$this->mysqlMinVersion}";
51
+
52
+ return "Your MySQL Version appears to be in good shape.";
53
+ }
54
+
55
+ function getServerType()
56
+ {
57
+ if($this->isApache())
58
+ return "Apache";
59
+ else if($this->isNginx)
60
+ return "Nginx";
61
+ else
62
+ return "Unknown";
63
+ }
64
+
65
+ function isApache()
66
+ {
67
+ return $apache = strpos(strtolower($_SERVER['SERVER_SOFTWARE']), 'apache') !== FALSE;
68
+ }
69
+
70
+ function isNginx()
71
+ {
72
+ return $nginx = strpos(strtolower($_SERVER['SERVER_SOFTWARE']), 'ngix') !== FALSE;
73
+ }
74
+
75
+ function getFreeDiskSpace()
76
+ {
77
+ $bytes = disk_free_space("/");
78
+ return $this->transformBytes($bytes);
79
+ }
80
+
81
+ function getTotalDiskSpace()
82
+ {
83
+ $bytes = disk_total_space("/");
84
+ return $this->transformBytes($bytes);
85
+ }
86
+
87
+
88
+ function transformBytes($bytes)
89
+ {
90
+ if($bytes < 1024)
91
+ return;
92
+
93
+ $si_prefix = array( 'B', 'KB', 'MB', 'GB', 'TB', 'EB', 'ZB', 'YB' );
94
+ $base = 1024;
95
+ $class = min((int)log($bytes , $base) , count($si_prefix) - 1);
96
+
97
+ return sprintf('%1.2f' , $bytes / pow($base,$class)) . ' ' . $si_prefix[$class];
98
+ }
99
+
100
+ function getDirectorySize($directory)
101
+ {
102
+ $size = 0;
103
+ foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory)) as $file){
104
+ $size+=$file->getSize();
105
+ }
106
+ return $this->transformBytes($size);
107
+ }
108
+
109
+ function getCPU()
110
+ {
111
+ $load = sys_getloadavg();
112
+ return $load;
113
+ }
114
+
115
+ function getMemoryUsage()
116
+ {
117
+ $free = shell_exec('free');
118
+ $free = (string)trim($free);
119
+ $free_arr = explode("\n", $free);
120
+ $mem = explode(" ", $free_arr[1]);
121
+ $mem = array_filter($mem);
122
+ $mem = array_merge($mem);
123
+ $memory_usage = $mem[2]/$mem[1]*100;
124
+
125
+ return $memory_usage;
126
+ }
127
+
128
+ function getCPUs()
129
+ {
130
+ $numCpus = 1;
131
+
132
+ if (is_file('/proc/cpuinfo'))
133
+ {
134
+ $cpuinfo = file_get_contents('/proc/cpuinfo');
135
+ preg_match_all('/^processor/m', $cpuinfo, $matches);
136
+
137
+ $numCpus = count($matches[0]);
138
+ }
139
+ else if ('WIN' == strtoupper(substr(PHP_OS, 0, 3)))
140
+ {
141
+ $process = @popen('wmic cpu get NumberOfCores', 'rb');
142
+
143
+ if (false !== $process)
144
+ {
145
+ fgets($process);
146
+ $numCpus = intval(fgets($process));
147
+
148
+ pclose($process);
149
+ }
150
+ }
151
+ else
152
+ {
153
+ $process = @popen('sysctl -a', 'rb');
154
+
155
+ if (false !== $process)
156
+ {
157
+ $output = stream_get_contents($process);
158
+
159
+ preg_match('/hw.ncpu: (\d+)/', $output, $matches);
160
+ if ($matches)
161
+ {
162
+ $numCpus = intval($matches[1][0]);
163
+ }
164
+
165
+ pclose($process);
166
+ }
167
+ }
168
+
169
+ return $numCpus;
170
+ }
171
+
172
+ function getIOWait()
173
+ {
174
+ $a=$this->procStats();
175
+ sleep(5);
176
+ $b=$this->ProcStats();
177
+
178
+ $total=array_sum($b)-array_sum($a);
179
+
180
+ $loadavg = round(100* (($b[0]+$b[1]+$b[2]) - ($a[0]+$a[1]+$a[2])) / $total, 2); // user+nice+system
181
+ $iowait= round(100* ($b[4] - $a[4])/$total,2);
182
+ return $iowait;
183
+ }
184
+
185
+ function procStats()
186
+ {
187
+ $fp=fopen("/proc/stat","r");
188
+ if(false===$fp)
189
+ return false;
190
+ $a=explode(' ',fgets($fp));
191
+ array_shift($a); //get rid of 'cpu'
192
+ while(!$a[0])
193
+ array_shift($a); //get rid of ' '
194
+ var_dump($a);
195
+ fclose($fp);
196
+ return $a;
197
+ }
198
+
199
+ function getDatabaseSize()
200
+ {
201
+ $vers = Mage::getModel('esperformance/versions');
202
+ return $vers->getMysqlSize();
203
+ }
204
+
205
+ function isPercona()
206
+ {
207
+ $vers = Mage::getModel('esperformance/versions');
208
+
209
+ return strpos(strtolower($vers->getMysqlVersionNotes()), 'percona') !== FALSE;
210
+
211
+ }
212
+
213
+ function getModulesInfo()
214
+ {
215
+ $active = 0;
216
+ $inactive = 0;
217
+ $total = 0;
218
+ $core_active = 0;
219
+ foreach(Mage::getConfig()->getNode('modules')->children() as $key=>$value)
220
+ {
221
+ $value = (array)$value;
222
+
223
+ $total++;
224
+
225
+ if($value['codePool'] == "core" && $value['active'] === 'true')
226
+ $core_active++;
227
+
228
+ ($value['active'] === "true" ? $active++ : $inactive++ );
229
+
230
+ }
231
+
232
+ return array(
233
+ 'core_active' => $core_active,
234
+ 'total_active' => $active,
235
+ 'inactive' => $inactive,
236
+ 'installed' => $total
237
+ );
238
+
239
+ }
240
+
241
+ function detectCdn()
242
+ {
243
+ $skin = Mage::getStoreConfig('web/unsecure/base_skin_url');
244
+ $media = Mage::getStoreConfig('web/unsecure/base_media_url');
245
+ $js = Mage::getStoreConfig('web/unsecure/base_js_url');
246
+ $base = Mage::getStoreConfig('web/unsecure/base_link_url');
247
+
248
+
249
+
250
+ $data['skin'] = "not detected";
251
+
252
+
253
+
254
+ if(Mage::getStoreConfig('web/unsecure/base_skin_url') != $base."skin/")
255
+ $data['skin'] = "active!";
256
+
257
+ $data['media'] = "not detected";
258
+ if(Mage::getStoreConfig('web/unsecure/base_media_url') != $base."media/")
259
+ $data['media'] = "active!";
260
+
261
+ $data['js'] = "not detected";
262
+ if(Mage::getStoreConfig('web/unsecure/base_js_url') != $base."js/")
263
+ $data['js'] = "active!";
264
+
265
+ return $data;
266
+
267
+
268
+ }
269
+
270
+
271
+ }
272
+
app/code/community/Eddiespradley/Performance/Model/Versions.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Eddiespradley_Performance_Model_Versions extends Mage_Core_Model_Abstract
3
+ {
4
+
5
+ function getMysqlVersion()
6
+ {
7
+ $resource = Mage::getSingleton('core/resource');
8
+ $readConnection = $resource->getConnection('core_read');
9
+
10
+ $query = "SHOW VARIABLES WHERE variable_name = 'version'";
11
+
12
+ $version = $readConnection->fetchAll($query);
13
+
14
+ return $version[0]['Value'];
15
+ }
16
+
17
+ function getMysqlSize()
18
+ {
19
+ $resource = Mage::getSingleton('core/resource');
20
+ $readConnection = $resource->getConnection('core_read');
21
+
22
+ $query = 'SELECT table_schema "name",
23
+ Round(Sum(data_length + index_length), 1) "value"
24
+ FROM information_schema.tables
25
+ GROUP BY table_schema';
26
+
27
+ $version = $readConnection->fetchAll($query);
28
+
29
+ return $version;
30
+ }
31
+
32
+ function getMysqlVersionNotes()
33
+ {
34
+ $resource = Mage::getSingleton('core/resource');
35
+ $readConnection = $resource->getConnection('core_read');
36
+
37
+ $query = "SHOW VARIABLES WHERE variable_name = 'version_comment'";
38
+
39
+ $version = $readConnection->fetchAll($query);
40
+
41
+ return $version[0]['Value'];
42
+
43
+ }
44
+
45
+ }
app/code/community/Eddiespradley/Performance/controllers/IndexController.php ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ # app/code/community/eddiespradley/performance/controllers/IndexController.php
4
+
5
+ class Eddiespradley_Performance_IndexController extends Mage_Adminhtml_Controller_Action
6
+ {
7
+ public function indexAction()
8
+ {
9
+
10
+ $this->loadLayout();
11
+
12
+
13
+
14
+ $this->_addLeft($this->getLayout()
15
+ ->createBlock('esperformance/left')
16
+ ->setTemplate('esperformance/left.phtml'));
17
+
18
+ $this->_addContent($this->getLayout()
19
+ ->createBlock('esperformance/main')
20
+ ->setTemplate('esperformance/main.phtml'));
21
+
22
+
23
+ #$this->getResponse()->setBody($block->toHtml());
24
+ $this->renderLayout();
25
+
26
+ }
27
+
28
+ public function testAction()
29
+ {
30
+ echo "123";
31
+ }
32
+
33
+ public function enablecacheAction()
34
+ {
35
+
36
+ echo "<pre>";
37
+ foreach(Mage::app()->getCacheInstance()->getTypes() as $cache)
38
+ {
39
+ $types[$cache->getId()] = 1;
40
+ }
41
+
42
+ print_r($types);
43
+ Mage::app()->saveUseCache($types);
44
+ $this->_getSession()->addSuccess(Mage::helper('adminhtml')->__("All cache types are enabled."));
45
+
46
+ #$this->_redirect('*/*');
47
+ echo "123";
48
+ exit;
49
+ }
50
+
51
+
52
+ }
app/code/community/Eddiespradley/Performance/etc/config.xml ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <config>
2
+ <modules>
3
+ <Eddiespradley_Performance>
4
+ <version>0.1</version>
5
+ </Eddiespradley_Performance>
6
+ </modules>
7
+ <admin>
8
+ <routers>
9
+ <eddiespradley_performance_route>
10
+ <use>admin</use>
11
+ <args>
12
+ <module>Eddiespradley_Performance</module>
13
+ <frontName>esperformance</frontName>
14
+ </args>
15
+ </eddiespradley_performance_route>
16
+ </routers>
17
+ </admin>
18
+
19
+
20
+ <adminhtml>
21
+ <layout>
22
+ <update>
23
+ <esperformance>
24
+ <file>esperformance.xml</file>
25
+ </esperformance>
26
+ </update>
27
+ </layout>
28
+ <menu>
29
+ <system>
30
+ <children>
31
+ <eddiespradley_performance>
32
+ <title>ES Performance</title>
33
+ <action>esperformance/index/index</action>
34
+ </eddiespradley_performance>
35
+ </children>
36
+ </system>
37
+ </menu>
38
+ <acl>
39
+ <resources>
40
+ <admin>
41
+ <children>
42
+ <system>
43
+ <children>
44
+ <config>
45
+ <children>
46
+ <esperformance translate="title" module="export">
47
+ <title>ES Performance</title>
48
+ </esperformance>
49
+ </children>
50
+ </config>
51
+ </children>
52
+ </system>
53
+ </children>
54
+ </admin>
55
+ </resources>
56
+ </acl>
57
+ </adminhtml>
58
+
59
+ <global>
60
+ <helpers>
61
+ <esperformance>
62
+ <class>Eddiespradley_Performance_Helper</class>
63
+ </esperformance>
64
+ </helpers>
65
+ <models>
66
+ <esperformance>
67
+ <class>Eddiespradley_Performance_Model</class>
68
+ </esperformance>
69
+ </models>
70
+ <blocks>
71
+ <esperformance>
72
+ <class>Eddiespradley_Performance_Block</class>
73
+ </esperformance>
74
+ </blocks>
75
+ </global>
76
+ <!--
77
+ <default>
78
+ <eddiespradley>
79
+ <performance>
80
+ <savelocation>var/export/file.csv</savelocation>
81
+ </performance>
82
+ <ftp>
83
+ <host>uploads.google.com</host>
84
+ <user></user>
85
+ <pass></pass>
86
+ <file>Google.csv</file>
87
+ </ftp>
88
+ </eddiespradley>
89
+ </default>
90
+ -->
91
+ </config>
app/design/adminhtml/default/default/template/esperformance/left.phtml ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+
3
+ <h2>Menu</h2>
4
+ <div id="sidebar">
5
+ <ul>
6
+ <li>> <a href="#magento">Magento Version</a></li>
7
+ <li>> <a href="#php">PHP Information</a></li>
8
+ <li>> <a href="#mysql">MySQL</a></li>
9
+ <li>> <a href="#web">Web Server</a></li>
10
+ <li>> <a href="#module">Modules</a></li>
11
+ <li>> <a href="#cdn">CDN</a></li>
12
+ <li>> <a href="#cpu">CPU</a></li>
13
+ <li>> <a href="#database">Database</a></li>
14
+ <li>> <a href="#disk">Disk</a></li>
15
+ <li>> <a href="#var">Var</a></li>
16
+ <li>> <a href="#session">Session Storage</a></li>
17
+ <li>> <a href="#backend">Backend Cache</a></li>
18
+ <li>> <a href="#magentoc">Magento Cache</a></li>
19
+ <li>> <a href="#log">Log Rotation</a></li>
20
+ </ul>
21
+
22
+ <br>
23
+ <div>
24
+ Visit my <a href="http://www.eddiespradley.com/blog/" target="_blank">blog</a> for more speed tips.
25
+ </div>
26
+ <br>
27
+ <div>
28
+ <a href="http://www.eddiespradley.com/" target="_blank">Free Consultation</a>
29
+ </div>
30
+ </div>
app/design/adminhtml/default/default/template/esperformance/main.phtml ADDED
@@ -0,0 +1,450 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <style>
2
+ .group{
3
+ margin-bottom: 5px;
4
+ border: 1px solid #d6d6d6;
5
+ }
6
+ .row{
7
+
8
+ background-color: #fafafa;
9
+ padding: 5px;
10
+ padding-left: 10px;
11
+
12
+ }
13
+ .row.title{
14
+ font-size: 15px;
15
+ background-color: #6f8992;
16
+ font: 12px/1.5em Arial, Helvetica, sans-serif;
17
+ color: white;
18
+ border-bottom: 1px solid #d6d6d6;
19
+ padding:3px;
20
+ font-weight: bold;
21
+ padding-left: 5px;
22
+
23
+ }
24
+ .head{
25
+ font-weight: bold;
26
+ }
27
+ .row1{
28
+ float: left;
29
+ width: 15%;
30
+ }
31
+
32
+ .row2{
33
+ float: left;
34
+ width: 10%;
35
+ }
36
+
37
+ .row3{
38
+ float: left;
39
+
40
+ }
41
+
42
+ .row4{
43
+ float: left;
44
+
45
+ }
46
+
47
+ .row2.wide{
48
+ width: auto;
49
+ }
50
+
51
+ #esperformance{
52
+ width: 70%;
53
+ }
54
+
55
+ .clear{
56
+ clear: both;
57
+ }
58
+
59
+ .title .link{
60
+ float:right;
61
+ color: white;
62
+ }
63
+ .title .link a{
64
+ color: white;
65
+ }
66
+ </style>
67
+
68
+
69
+ <div id="esperformance entry-edit">
70
+ <div class="group section-config">
71
+ <a name="magento"></a>
72
+ <div class="row title entry-edit-head">
73
+ Magento Version
74
+ </div>
75
+ <div class="row">
76
+ <?php echo Mage::getEdition(); ?> (<?php echo Mage::getVersion(); ?>)
77
+ </div>
78
+ </div>
79
+ <div class="group">
80
+ <a name="php"></a>
81
+ <div class="row title">
82
+ PHP Information
83
+ </div>
84
+ <div class="row">
85
+ <div class="row1">&nbsp;</div>
86
+ <div class="row2 head">Current</div>
87
+ <div class="row3 head">Recommended</div>
88
+ <div class="clear"></div>
89
+ </div>
90
+ <div class="row">
91
+ <div class="row1">Version: </div>
92
+ <div class="row2"><?php echo $this->getPhpVersion(); ?></div>
93
+ <div class="row3">Latest Supported Version (current 5.4 with patch)</div>
94
+ <div class="clear"></div>
95
+ </div>
96
+
97
+ <div class="row">
98
+ <div class="row1">Memory Limit: </div>
99
+ <div class="row2"><?php echo $this->getPhpMemory(); ?></div>
100
+ <div class="row3">20-40% of your total memory</div>
101
+ <div class="clear"></div>
102
+ </div>
103
+ <div class="row">
104
+ <div class="row1">PHP Max Input Vars: </div>
105
+ <div class="row2"><?php echo $this->getPhpInputVars(); ?></div>
106
+ <div class="row3">Consult with Host</div>
107
+ <div class="clear"></div>
108
+ <div class="clear"></div>
109
+ </div>
110
+ </div>
111
+
112
+ <div class="group">
113
+ <a name="mysql"></a>
114
+ <div class="row title">
115
+ MySQL Information
116
+ </div>
117
+ <div class="row">
118
+ <div class="row1">&nbsp;</div>
119
+ <div class="row2 head">Current</div>
120
+ <div class="row3 head">Recommended</div>
121
+ <div class="clear"></div>
122
+ </div>
123
+ <div class="row">
124
+ <div class="row1">Version: </div>
125
+ <div class="row2"><?php echo $this->getMysqlVersion(); ?></div>
126
+ <div class="row3">Latest Version</div>
127
+ <div class="clear"></div>
128
+ </div>
129
+ <div class="row">
130
+ <div class="row1">Is Percona: </div>
131
+ <div class="row2"><?php echo ($this->isPercona() ? "yes" : "no" ); ?></div>
132
+ <div class="row3">yes</div>
133
+ <div class="clear"></div>
134
+ </div>
135
+ </div>
136
+
137
+ <div class="group">
138
+ <a name="web"></a>
139
+ <div class="row title">
140
+ Web Server
141
+ </div>
142
+ <div class="row">
143
+ <div class="row1">&nbsp;</div>
144
+ <div class="row2 head">Current</div>
145
+ <div class="row3 head">Recommended</div>
146
+ <div class="clear"></div>
147
+ </div>
148
+ <div class="row">
149
+ <div class="row1">Type:</div>
150
+ <div class="row2"><?php /*echo $this->getServerType();*/ ?> <?php echo $_SERVER['SERVER_SOFTWARE']; ?></div>
151
+ <div class="row3">Apache (2.2.x) or Nginx latest version</div>
152
+ <div class="clear"></div>
153
+ </div>
154
+ </div>
155
+ <div class="group">
156
+ <a name="module"></a>
157
+ <div class="row title">
158
+ Module Information
159
+ </div>
160
+ <div class="row">
161
+ <div class="row1">&nbsp;</div>
162
+ <div class="row2 head">Current</div>
163
+ <div class="row3 head">Recommended</div>
164
+ <div class="clear"></div>
165
+ </div>
166
+ <?php
167
+ $modules = $this->getModulesInfo();
168
+ ?>
169
+ <div class="row">
170
+ <div class="row1">Total Installed:</div>
171
+ <div class="row2"><?php echo $modules['installed']; ?></div>
172
+ <div class="row3">N/A</div>
173
+ <div class="clear"></div>
174
+ </div>
175
+ <div class="row">
176
+ <div class="row1">Core (active): </div>
177
+ <div class="row2"><?php echo $modules['core_active']; ?></div>
178
+ <div class="row3"><?php echo $modules['core_active']; ?></div>
179
+ <div class="clear"></div>
180
+ </div>
181
+ <div class="row">
182
+ <div class="row1">Third Party (active)</div>
183
+ <div class="row2"><?php echo $modules['total_active'] - $modules['core_active']; ?></div>
184
+ <div class="row3">< 5 (or as little as possible)</div>
185
+ <div class="clear"></div>
186
+ </div>
187
+ <div class="row">
188
+ <div class="row1">Total Inactive: </div>
189
+ <div class="row2"><?php echo $modules['inactive']; ?></div>
190
+ <div class="row3">Remove these.</div>
191
+ <div class="clear"></div>
192
+ </div>
193
+ </div>
194
+ <div class="group">
195
+ <a name="cdn"></a>
196
+ <div class="row title">
197
+ CDN Detection:
198
+ </div>
199
+ <div class="row">
200
+ <div class="row1">&nbsp;</div>
201
+ <div class="row2 head">Current</div>
202
+ <div class="row3 head">Recommended</div>
203
+ <div class="clear"></div>
204
+ </div>
205
+ <?php
206
+ $cdn = $this->detectCdn();
207
+ ?>
208
+ <div class="row">
209
+ <div class="row1">Media CDN:</div>
210
+ <div class="row2"><?php echo $cdn['media']; ?></div>
211
+ <div class="row3">Enable CDN Service (<a href="http://ref.metacdn.com/7Z2Vv" target="_blank">MetaCDN</a>)</div>
212
+ <div class="clear"></div>
213
+ </div>
214
+ <div class="row">
215
+ <div class="row1">CSS/Skin: </div>
216
+ <div class="row2"><?php echo $cdn['skin']; ?></div>
217
+ <div class="row3">Enable CDN Service (<a href="http://ref.metacdn.com/7Z2Vv" target="_blank">MetaCDN</a>)</div>
218
+
219
+ <div class="clear"></div>
220
+ </div>
221
+ <div class="row">
222
+ <div class="row1">JS: </div>
223
+ <div class="row2"><?php echo $cdn['js']; ?></div>
224
+ <div class="row3">Enable CDN Service (<a href="http://ref.metacdn.com/7Z2Vv" target="_blank">MetaCDN</a>)</div>
225
+ <div class="clear"></div>
226
+ </div>
227
+ </div>
228
+ <div class="group">
229
+ <a name="cpu"></a>
230
+ <div class="row title">
231
+ CPU Information
232
+ </div>
233
+ <div class="row">
234
+ <div class="row1">&nbsp;</div>
235
+ <div class="row2 head">Current</div>
236
+ <div class="row3 head">Recommended</div>
237
+ <div class="clear"></div>
238
+ </div>
239
+ <?php
240
+ $cpu = $this->getCPU();
241
+ ?>
242
+ <div class="row">
243
+ <div class="row1">Average (1 min):</div>
244
+ <div class="row2"><?php echo $cpu[0]; ?></div>
245
+ <div class="row3">< <?php echo $this->getCPUs(); ?></div>
246
+ <div class="clear"></div>
247
+
248
+ </div>
249
+ <div class="row">
250
+ <div class="row1">Average (5 min):</div>
251
+ <div class="row2"><?php echo $cpu[1]; ?></div>
252
+ <div class="row3">< <?php echo $this->getCPUs(); ?></div>
253
+ <div class="clear"></div>
254
+ </div>
255
+ <div class="row">
256
+ <div class="row1">Average (15 min):</div>
257
+ <div class="row2"><?php echo $cpu[2]; ?></div>
258
+ <div class="row3">< <?php echo $this->getCPUs(); ?></div>
259
+ <div class="clear"></div>
260
+ </div>
261
+ <div class="row">
262
+ <div class="row1"># of CPUs:</div>
263
+ <div class="row2"><?php echo $this->getCPUs(); ?></div>
264
+ <div class="row3">Requires Analysis</div>
265
+ <div class="clear"></div>
266
+ </div>
267
+ </div>
268
+ <div class="group">
269
+ <a name="database"></a>
270
+ <div class="row title">
271
+ Database Size
272
+ </div>
273
+ <div class="row">
274
+ <div class="row1">&nbsp;</div>
275
+ <div class="row2 head">Current</div>
276
+ <div class="row3 head">Recommended</div>
277
+ <div class="clear"></div>
278
+ </div>
279
+ <?php
280
+ foreach($this->getDatabaseSize() as $db)
281
+ {
282
+ ?>
283
+ <div class="row">
284
+ <div class="row1"><?php echo $db['name']; ?></div>
285
+ <div class="row2"><?php echo $this->transformBytes($db['value']); ?></div>
286
+ <div class="row3"> < 700MB </div>
287
+ <div class="clear"></div>
288
+ </div>
289
+ <?php
290
+ }
291
+
292
+ ?>
293
+ </div>
294
+ <div class="group">
295
+ <a name="disk"></a>
296
+ <div class="row title">
297
+ Disk Space
298
+ </div>
299
+ <div class="row">
300
+ <div class="row1">&nbsp;</div>
301
+ <div class="row2 head">Current</div>
302
+ <div class="row3 head">Recommended</div>
303
+ <div class="clear"></div>
304
+ </div>
305
+ <div class="row">
306
+ <div class="row1">Total:</div>
307
+ <div class="row2"><?php echo $this->getTotalDiskSpace(); ?></div>
308
+ <div class="row3">N/A</div>
309
+ <div class="clear"></div>
310
+ </div>
311
+ <div class="row">
312
+ <div class="row1">Used:</div>
313
+ <div class="row2"><?php echo $this->getTotalDiskSpace() - $this->getFreeDiskSpace(); ?></div>
314
+ <div class="row3">N/A</div>
315
+ <div class="clear"></div>
316
+ </div>
317
+ <div class="row">
318
+ <div class="row1">Free:</div>
319
+ <div class="row2"><?php echo $this->getFreeDiskSpace(); ?></div>
320
+ <div class="row3">N/A</div>
321
+ <div class="clear"></div>
322
+ </div>
323
+ <div class="row">
324
+ <div class="row1">Used Percent:</div>
325
+ <div class="row2"><?php echo number_format((1-($this->getFreeDiskSpace() / $this->getTotalDiskSpace())) * 100, 2); ?>%</div>
326
+ <div class="row3">Low as possible</div>
327
+ <div class="clear"></div>
328
+ </div>
329
+ </div>
330
+
331
+ <div class="group">
332
+ <a name="var"></a>
333
+ <div class="row title">
334
+ Var Directory
335
+ </div>
336
+ <div class="row">
337
+ <div class="row1">&nbsp;</div>
338
+ <div class="row2 head">Current:</div>
339
+ <div class="row3 head">Recommended:</div>
340
+ <div class="clear"></div>
341
+ </div>
342
+ <div class="row">
343
+ <div class="row1">Size</div>
344
+ <div class="row2"><?php echo $this->getDirectorySize(Mage::getBaseDir('var')); ?> </div>
345
+ <div class="row3">< 1GB</div>
346
+ <div class="clear"></div>
347
+ </div>
348
+ </div>
349
+ <div class="group">
350
+ <a name="session"></a>
351
+ <div class="row title">
352
+ Session Storage
353
+ </div>
354
+ <div class="row">
355
+ <div class="row1">&nbsp;</div>
356
+ <div class="row2 head">Current:</div>
357
+ <div class="row3 head">Recommended:</div>
358
+ <div class="clear"></div>
359
+ </div>
360
+ <div class="row">
361
+ <div class="row1">Type</div>
362
+ <div class="row2"><?php echo Mage::getConfig()->getNode('global/session_save')->{0}; ?> </div>
363
+ <div class="row3">Memcached (or related).</div>
364
+ <div class="clear"></div>
365
+ </div>
366
+ </div>
367
+ <div class="group">
368
+ <a name="backend"></a>
369
+ <div class="row title">
370
+ Backend Cache Type
371
+ </div>
372
+ <div class="row">
373
+ <div class="row1">&nbsp;</div>
374
+ <div class="row2 head">Current</div>
375
+ <div class="row3 head">Recommended</div>
376
+ <div class="clear"></div>
377
+ </div>
378
+ <div class="row">
379
+ <div class="row1">Type</div>
380
+ <div class="row2"><?php echo (@Mage::getConfig()->getNode('global/cache/backend')->{0} ? Mage::getConfig()->getNode('global/cache/backend')->{0} : "not in use"); ?> </div>
381
+ <div class="row3">Redis (or similar)</div>
382
+ <div class="clear"></div>
383
+ </div>
384
+ </div>
385
+ <div class="group">
386
+ <a name="magentoc"></a>
387
+ <div class="row title">
388
+ Magento Cache
389
+ </div>
390
+ <div class="row">
391
+ <div class="row1 head">Type</div>
392
+ <div class="row2 head">Current</div>
393
+ <div class="row3 head">Recommended</div>
394
+ <div class="clear"></div>
395
+ </div>
396
+ <?php
397
+ foreach(Mage::app()->getCacheInstance()->getTypes() as $cache)
398
+ {
399
+ ?>
400
+ <div class="row">
401
+
402
+ <div class="row1"><?php echo $cache->getId(); ?></div>
403
+ <div class="row2"><?php echo ($cache->getStatus() ? 'Enabled' : 'Disabled' ); ?></div>
404
+ <div class="row3">Enabled</div>
405
+ <div class="clear"></div>
406
+ </div>
407
+ <?php
408
+ }
409
+ ?>
410
+ </div>
411
+
412
+ <div class="group">
413
+ <a name="log"></a>
414
+ <div class="row title">
415
+ Log Rotation <span class="link"><a href="http://www.eddiespradley.com/magento-speed-tip-disabling-database-logging/" target="_blank">[Learn More]</a></span>
416
+ </div>
417
+ <div class="row">
418
+ <div class="row1 head">&nbsp;</div>
419
+ <div class="row2 head">Current</div>
420
+ <div class="row3 head">Recommended</div>
421
+ <div class="clear"></div>
422
+ </div>
423
+ <div class="row">
424
+ <div class="row1">Status:</div>
425
+ <div class="row2"><?php echo (Mage::getStoreConfig('system/log/enabled') ? 'On' : 'Off' ); ?></div>
426
+ <div class="row3">on</div>
427
+ <div class="clear"></div>
428
+
429
+ </div>
430
+ <div class="row">
431
+ <div class="row1">Log Rotation Threshold:</div>
432
+ <div class="row2"><?php echo Mage::getStoreConfig('system/log/clean_after_day') . ' ' . Mage::getStoreConfig('system/log/frequency'); ?></div>
433
+ <div class="row3">1d or turn off logging. </div>
434
+ <div class="clear"></div>
435
+ </div>
436
+ </div>
437
+
438
+
439
+
440
+
441
+
442
+
443
+
444
+
445
+
446
+ </div>
447
+
448
+
449
+
450
+
app/etc/modules/Eddiespradley_Performance.xml ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <config>
2
+ <modules>
3
+ <Eddiespradley_Performance>
4
+ <active>true</active>
5
+ <codePool>community</codePool>
6
+ </Eddiespradley_Performance>
7
+ </modules>
8
+ </config>
package.xml ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <package>
3
+ <name>Eddiespradley_Performance</name>
4
+ <version>1.0.0</version>
5
+ <stability>stable</stability>
6
+ <license>GNU</license>
7
+ <channel>community</channel>
8
+ <extends/>
9
+ <summary>Outputs some information about your system and how to speed up Magento.</summary>
10
+ <description>Outputs some information about your system and how to speed up Magento.</description>
11
+ <notes>Initial Release</notes>
12
+ <authors><author><name>Eddie Spradley</name><user>espradley</user><email>eddie@expandlab.com</email></author></authors>
13
+ <date>2014-08-20</date>
14
+ <time>17:07:12</time>
15
+ <contents><target name="magecommunity"><dir name="Eddiespradley"><dir name="Performance"><dir name="Block"><file name="Left.php" hash="9b12ff2af29fcc90d75aef9e2327c816"/><file name="Main-.php" hash="b8f51df2242586f2c6a3051c065d026f"/><file name="Main.php" hash="667cd8e6b748bbfaeca20f1c0a0f9937"/></dir><dir name="controllers"><file name="IndexController.php" hash="cad22db6d705965195ba452e84657dcf"/></dir><dir name="etc"><file name="config.xml" hash="05e868a47afc17f46326de30a3245ddc"/></dir><dir name="Model"><file name="Versions.php" hash="f88546c2a1a65cfdaa5df4c65b1aca0f"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="esperformance"><file name="left.phtml" hash="0f3fa8f1cfb5f22315a7c14b29800d5c"/><file name="main.phtml" hash="ef3aec71062027c2e48fd9510c3898bb"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Eddiespradley_Performance.xml" hash="35113f530f434d3cf8b5f940b6841040"/></dir></target></contents>
16
+ <compatible/>
17
+ <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
18
+ </package>