<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1715783422433140115</id><updated>2025-03-06T17:26:56.683-08:00</updated><category term="linux"/><category term="oracle"/><category term="1Z0-805"/><category term="Java 7"/><category term="ESX"/><category term="ESXi"/><category term="Java"/><category term="RHEL"/><category term="VMWare"/><category term="network"/><category term="ovm"/><category term="ssh"/><category term="vm"/><category term="JVM"/><category term="OCP"/><category term="OEL"/><category term="OProfile"/><category term="apache"/><category term="lvm"/><category term="password"/><category term="port"/><category term="rpm"/><category term="svn"/><category term="timezone"/><category term="version"/><category term="xen"/><category term="11g"/><category term="Cloud"/><category term="Concurrency"/><category term="ExceptionInInitializerError"/><category term="GuidGenerator"/><category term="JEE"/><category term="JEE6"/><category term="JEE7"/><category term="JRockit"/><category term="Java 8"/><category term="NIO.2"/><category term="OOM"/><category term="ORA-01110"/><category term="SCJP"/><category term="SELinux"/><category term="browser"/><category term="certification"/><category term="cheat"/><category term="checksum"/><category term="chopt"/><category term="clone"/><category term="commands"/><category term="cron"/><category term="date"/><category term="dm"/><category term="dns"/><category term="ds3"/><category term="dv"/><category term="edit"/><category term="email"/><category term="ethtool"/><category term="fastcgi"/><category term="fcgi"/><category term="forwarding"/><category term="fuser"/><category term="git"/><category term="glassfish"/><category term="gso"/><category term="harpertown"/><category term="hg"/><category term="httpd"/><category term="hugepages"/><category term="img"/><category term="intel"/><category term="interrupts"/><category term="ipv6 linux"/><category term="iso"/><category term="kernel"/><category term="keygen"/><category term="lbac"/><category term="listener.ora"/><category term="lsnrctl"/><category term="lsof"/><category term="mcelog"/><category term="mdadm"/><category term="mercurial"/><category term="mount"/><category term="myrealm"/><category term="nehalem"/><category term="netstat"/><category term="nfs mount linux"/><category term="nis"/><category term="ntp"/><category term="ntpd"/><category term="ntpdate"/><category term="offload"/><category term="openssl"/><category term="ovs"/><category term="p2p"/><category term="partitioning"/><category term="postgres"/><category term="postgresql"/><category term="project"/><category term="python"/><category term="ramfs"/><category term="rat"/><category term="repository"/><category term="rsa"/><category term="rsh"/><category term="sandybridge"/><category term="sheet"/><category term="sshd"/><category term="ssl"/><category term="swap"/><category term="sync"/><category term="sysstat"/><category term="system"/><category term="tablespace"/><category term="tigerton"/><category term="tmpfs"/><category term="tso"/><category term="tuning"/><category term="vim"/><category term="vm.cfg"/><category term="weblogic"/><category term="westmere"/><category term="without"/><category term="woodcrest"/><category term="workspace"/><category term="xeon"/><title type='text'>Tad Bytes of Technology</title><subtitle type='html'>Tips, tricks, and helpful notes.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>58</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-7001997613544852140</id><published>2024-07-09T12:44:00.000-07:00</published><updated>2024-07-09T12:44:33.004-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="network"/><category scheme="http://www.blogger.com/atom/ns#" term="tuning"/><title type='text'>Tuning TCP/IP stack in Linux</title><content type='html'>&lt;span face=&quot;arial, sans-serif&quot; style=&quot;background-color: white; font-size: 12px; font-weight: bold;&quot;&gt;Kernel tunable parameters for TCP/IP stack performance&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;font-size: 12px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;ibm-data-table&quot; style=&quot;background-color: white; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-width: 0px 1px 1px; color: black; text-align: left; width: 100%px;&quot; summary=&quot;Table 1. Kernel tunable parameters for TCP/IP stack performance&quot;&gt;&lt;caption style=&quot;background-image: url(http://1.www.s81c.com/i/v16/t/sprites-t1.gif); background-position: 0px -545px; background-repeat: repeat-x; border-left-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-style: solid solid none; border-top-color: rgb(204, 204, 204); border-width: 1px 1px 0px; font-family: arial, sans-serif; font-size: 0.75em; height: 15px; margin: 0px; padding: 3px 5px; text-align: left;&quot;&gt;&lt;/caption&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th style=&quot;background-color: #f7f8fc; background-image: url(http://1.www.s81c.com/i/v16/t/text-tabs-bg.gif); background-repeat: repeat-x; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot;&gt;Tunable parameter&lt;/th&gt;&lt;th style=&quot;background-color: #f7f8fc; background-image: url(http://1.www.s81c.com/i/v16/t/text-tabs-bg.gif); background-repeat: repeat-x; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot;&gt;Default value&lt;/th&gt;&lt;th style=&quot;background-color: #f7f8fc; background-image: url(http://1.www.s81c.com/i/v16/t/text-tabs-bg.gif); background-repeat: repeat-x; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot;&gt;Option description&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tb-row&quot; style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&lt;code style=&quot;font-size: small;&quot;&gt;/proc/sys/net/core/rmem_default&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&quot;110592&quot;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot;&gt;Defines the default receive window size; for a large BDP, the size should be larger.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tb-row&quot; style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&lt;code style=&quot;font-size: small;&quot;&gt;/proc/sys/net/core/rmem_max&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&quot;110592&quot;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot;&gt;Defines the maximum receive window size; for a large BDP, the size should be larger.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tb-row&quot; style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&lt;code style=&quot;font-size: small;&quot;&gt;/proc/sys/net/core/wmem_default&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&quot;110592&quot;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot;&gt;Defines the default send window size; for a large BDP, the size should be larger.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tb-row&quot; style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&lt;code style=&quot;font-size: small;&quot;&gt;/proc/sys/net/core/wmem_max&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&quot;110592&quot;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot;&gt;Defines the maximum send window size; for a large BDP, the size should be larger.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tb-row&quot; style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&lt;code style=&quot;font-size: small;&quot;&gt;/proc/sys/net/ipv4/tcp_window_scaling&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&quot;1&quot;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot;&gt;Enables window scaling as defined by RFC 1323; must be enabled to support windows larger than 64KB.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tb-row&quot; style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&lt;code style=&quot;font-size: small;&quot;&gt;/proc/sys/net/ipv4/tcp_sack&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&quot;1&quot;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot;&gt;Enables selective acknowledgment, which improves performance by selectively acknowledging packets received out of order (causing the sender to retransmit only the missing segments); should be enabled (for wide area network communication), but it can increase CPU utilization.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tb-row&quot; style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&lt;code style=&quot;font-size: small;&quot;&gt;/proc/sys/net/ipv4/tcp_fack&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&quot;1&quot;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot;&gt;Enables Forward Acknowledgment, which operates with Selective Acknowledgment (SACK) to reduce congestion; should be enabled.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tb-row&quot; style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&lt;code style=&quot;font-size: small;&quot;&gt;/proc/sys/net/ipv4/tcp_timestamps&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&quot;1&quot;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot;&gt;Enables calculation of RTT in a more accurate way (see RFC 1323) than the retransmission timeout; should be enabled for performance.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tb-row&quot; style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&lt;code style=&quot;font-size: small;&quot;&gt;/proc/sys/net/ipv4/tcp_mem&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&quot;24576 32768 49152&quot;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot;&gt;Determines how the TCP stack should behave for memory usage; each count is in memory pages (typically 4KB). The first value is the low threshold for memory usage. The second value is the threshold for a memory pressure mode to begin to apply pressure to buffer usage. The third value is the maximum threshold. At this level, packets can be dropped to reduce memory usage. Increase the count for large BDP (but remember, it&#39;s memory pages, not bytes).&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tb-row&quot; style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&lt;code style=&quot;font-size: small;&quot;&gt;/proc/sys/net/ipv4/tcp_wmem&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&quot;4096 16384 131072&quot;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot;&gt;Defines per-socket memory usage for auto-tuning. The first value is the minimum number of bytes allocated for the socket&#39;s send buffer. The second value is the default (overridden by&amp;nbsp;&lt;code style=&quot;font-size: small;&quot;&gt;wmem_default&lt;/code&gt;) to which the buffer can grow under non-heavy system loads. The third value is the maximum send buffer space (overridden by&amp;nbsp;&lt;code style=&quot;font-size: small;&quot;&gt;wmem_max&lt;/code&gt;).&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tb-row&quot; style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&lt;code style=&quot;font-size: small;&quot;&gt;/proc/sys/net/ipv4/tcp_rmem&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&quot;4096 87380 174760&quot;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot;&gt;Same as&amp;nbsp;&lt;code style=&quot;font-size: small;&quot;&gt;tcp_wmem&lt;/code&gt;&amp;nbsp;except that it refers to receive buffers for auto-tuning.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tb-row&quot; style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&lt;code style=&quot;font-size: small;&quot;&gt;/proc/sys/net/ipv4/tcp_low_latency&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&quot;0&quot;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot;&gt;Allows the TCP/IP stack to give deference to low latency over higher throughput; should be disabled.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tb-row&quot; style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&lt;code style=&quot;font-size: small;&quot;&gt;/proc/sys/net/ipv4/tcp_westwood&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&quot;0&quot;&lt;/td&gt;&lt;td style=&quot;border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot;&gt;Enables a sender-side congestion control algorithm that maintains estimates of throughput and tries to optimize the overall utilization of bandwidth; should be enabled for WAN communication. This option is also useful for wireless interfaces, as packet loss may not be caused by congestion.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tb-row&quot; style=&quot;background-color: #ededed; background-position: initial initial; background-repeat: initial initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&lt;code style=&quot;font-size: small;&quot;&gt;/proc/sys/net/ipv4/tcp_bic&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #ededed; background-position: initial initial; background-repeat: initial initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot; valign=&quot;top&quot;&gt;&quot;1&quot;&lt;/td&gt;&lt;td style=&quot;background-color: #ededed; background-position: initial initial; background-repeat: initial initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; border-top: 1px solid rgb(204, 204, 204); font-family: arial, sans-serif; font-size: 0.7em; padding: 8px 5px; vertical-align: top;&quot;&gt;Enables Binary Increase Congestion for fast long-distance networks; permits better utilization of links operating at gigabit speeds; should be enabled for WAN communication.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
References&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.redhat.com/promo/summit/2008/downloads/pdf/Thursday/Mark_Wagner.pdf&quot;&gt;http://www.ibm.com/developerworks/library/l-hisock/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.redhat.com/promo/summit/2008/downloads/pdf/Thursday/Mark_Wagner.pdf&quot;&gt;http://www.redhat.com/promo/summit/2008/downloads/pdf/Thursday/Mark_Wagner.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.ntop.org/products/pf_ring/hardware-packet-filtering/&quot;&gt;http://www.ntop.org/products/pf_ring/hardware-packet-filtering&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/7001997613544852140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2012/12/linux-network-tuning.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/7001997613544852140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/7001997613544852140'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2012/12/linux-network-tuning.html' title='Tuning TCP/IP stack in Linux'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-5495829285025558560</id><published>2024-07-09T12:41:00.000-07:00</published><updated>2024-07-09T12:41:21.532-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><title type='text'>Show DDL for create Oracle DB table</title><content type='html'>&lt;p&gt;Default long size is only 80. If your DDL is longer you will have to increase the long size to display full DDL. The GET_DDL may not exactly match what was used for creating the table as it will list the default optional settings as well that the actual create table script may have omitted.&amp;nbsp;&lt;/p&gt;&lt;p&gt;SQL&amp;gt; set long 200000&lt;/p&gt;&lt;p&gt;SQL&amp;gt; select DBMS_METADATA.GET_DDL(&#39;TABLE&#39;,&#39;&amp;lt;your_table_name&amp;gt;&#39;) from dual;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/5495829285025558560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2024/07/show-ddl-for-create-oracle-db-table.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/5495829285025558560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/5495829285025558560'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2024/07/show-ddl-for-create-oracle-db-table.html' title='Show DDL for create Oracle DB table'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-3187722083948375703</id><published>2017-10-27T11:32:00.000-07:00</published><updated>2017-10-27T11:32:09.357-07:00</updated><title type='text'>Database benchmarks</title><content type='html'>Standard OLTP Benchmarks&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;TPC-C/E&lt;/li&gt;
&lt;li&gt;SPECjEnterprise2010&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Open source / Free OLTP Benchmarks&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.hammerdb.com/&quot; target=&quot;_blank&quot;&gt;HammerDB &lt;/a&gt;- Workload provides TPC-C/H like transactions, not to be directl compared with TPC-C/H. Use New Orders Per Min (NOPM) metric to compare different DB vendors.. It supports Oracle, DB2, SQL server, MySQL/MariaDB, Aurora, Redshift, etc. Requires GUI.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/brianfrankcooper/YCSB&quot; target=&quot;_blank&quot;&gt;YCSB&lt;/a&gt; - Workloads are mostly SELECT/UPD/INS combinations for variious data stores:&lt;br /&gt;A—Update heavy Read: 50% Update: 50% - Zipfian - Session store recording recent actions in a user session&lt;br /&gt;B—Read heavy Read: 95% Update: 5% - Zipfian - Photo tagging; add a tag is an update, but most operations are to read tags
&lt;br /&gt;C—Read only Read: 100% - Zipfian - User profile cache, where profiles are constructed elsewhere
(e.g., Hadoop)
&lt;br /&gt;D—Read latest Read: 95% Insert: 5% -&amp;nbsp;&amp;nbsp;Latest - User status updates; people want to read the latest statuses&amp;nbsp; &lt;br /&gt;E—Short ranges Scan: 95% Insert: 5% - Zipfian/Uniform (Workload E uses the Zipfian distribution to choose the first key in the range, and the Uniform distribution to choose the number of records to scan) - Threaded conversations, where each scan is for the posts in a&amp;nbsp;given thread (assumed to be clustered by thread id)&lt;br /&gt;&lt;br /&gt;JDBC version is available that can be used for RDBMS like Oracle, MySQL, etc.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/akopytov/sysbench&quot; target=&quot;_blank&quot;&gt;Sysbench&lt;/a&gt; - Includes oltp (read/writes), fileio, cpu, memory, threads, mutex workloads.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://dominicgiles.com/swingbench.html&quot; target=&quot;_blank&quot;&gt;Swingbench&lt;/a&gt; - Includes 6 workloads - OrderEntry (JDBC or PL/SQL variants), SalesHistory, TPC-DS Like, JSON, CallingCircle and StressTest&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.oracle.com/database/121/TGDBA/pfgrf_iodesign.htm#TGDBA95222&quot; target=&quot;_blank&quot;&gt;Orion Calibration&lt;/a&gt; - Tool for Oracle DB, simulating I/O workloads using same I/O software stack as Oracle.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/scalyr/iobench&quot; target=&quot;_blank&quot;&gt;iobench&lt;/a&gt; - Java benchmark targeting EC2 and EBS&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/3187722083948375703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2017/10/database-benchmarks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/3187722083948375703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/3187722083948375703'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2017/10/database-benchmarks.html' title='Database benchmarks'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-176851231808602029</id><published>2016-01-06T22:58:00.003-08:00</published><updated>2016-01-06T22:58:36.805-08:00</updated><title type='text'>Disable Password Expiry on Linux</title><content type='html'>chage -I -1 -m 0 -M 99999 -E -1 &lt;username&gt;</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/176851231808602029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2016/01/disable-password-expiry-on-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/176851231808602029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/176851231808602029'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2016/01/disable-password-expiry-on-linux.html' title='Disable Password Expiry on Linux'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-759899560323779349</id><published>2015-07-17T22:36:00.000-07:00</published><updated>2015-07-17T22:36:04.475-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="browser"/><category scheme="http://www.blogger.com/atom/ns#" term="forwarding"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="port"/><category scheme="http://www.blogger.com/atom/ns#" term="ssh"/><title type='text'>Port forwarding in Linux</title><content type='html'>To access a machine not directly accessible on network, port forwarding can be used from an accessible machine to the destination machine.&amp;nbsp;&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
One common scenario where port forwarding is useful is where a process, like web server, is on a machine with no x-window/browser and it is not directly accessible from the machine running the browser, but an accessible &quot;gateway&quot; machine is available in between.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The following can be run on the &quot;gateway&quot; machine:&lt;/div&gt;
&lt;div&gt;
ssh &amp;lt;user&amp;gt;@&amp;lt;gateway-host&amp;gt; -L &amp;lt;port&amp;gt;:&amp;lt;destination-host&amp;gt;:&amp;lt;destination-port&amp;gt; -g -N&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
As long as this process is running, gateway-host:port will show the content from &amp;lt;destination-host&amp;gt;:&amp;lt;destination-port&amp;gt;.&amp;nbsp;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/759899560323779349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2015/07/port-forwarding-in-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/759899560323779349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/759899560323779349'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2015/07/port-forwarding-in-linux.html' title='Port forwarding in Linux'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-1752968307551847567</id><published>2014-08-13T09:34:00.000-07:00</published><updated>2014-08-13T09:34:16.201-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="certification"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Java 8"/><category scheme="http://www.blogger.com/atom/ns#" term="OCP"/><title type='text'>Oracle Certified Professional Java SE 8 Upgrade Exam</title><content type='html'>The certification for Java SE 8 is not yet available, but here are the &quot;What&#39;s New&quot; from the JDK 8 release, and are candidates for the upgrade exam preparation:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html&quot;&gt;Lambda expressions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html&quot;&gt;Default methods&lt;/a&gt;&amp;nbsp;in interface&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://docs.oracle.com/javase/tutorial/collections/streams/index.html&quot;&gt;Aggregate operations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://docs.oracle.com/javase/tutorial/datetime/index.html&quot;&gt;Date-Time&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://docs.oracle.com/javase/tutorial/java/annotations/type_annotations.html&quot;&gt;Type annotations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://docs.oracle.com/javase/tutorial/java/annotations/repeating.html&quot;&gt;Repeating annotations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;New java.util.stream package&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
There are several other updates in Security, JavaFX, Tools, etc., but we will wait and see if they make it to the upgrade certification syllabus.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Details on Oracle certification can be accessed from the Certification tab on&amp;nbsp;http://education.oracle.com&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;b&gt;References&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html&quot; target=&quot;_blank&quot;&gt;What&#39;s New in JDK 8&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://docs.oracle.com/javase/tutorial/&quot; target=&quot;_blank&quot;&gt;Java Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/1752968307551847567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2014/08/oracle-certified-professional-java-se-8.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/1752968307551847567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/1752968307551847567'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2014/08/oracle-certified-professional-java-se-8.html' title='Oracle Certified Professional Java SE 8 Upgrade Exam'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-2942823069111254756</id><published>2014-07-22T10:01:00.003-07:00</published><updated>2014-07-28T08:30:15.990-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="project"/><category scheme="http://www.blogger.com/atom/ns#" term="repository"/><category scheme="http://www.blogger.com/atom/ns#" term="svn"/><category scheme="http://www.blogger.com/atom/ns#" term="version"/><category scheme="http://www.blogger.com/atom/ns#" term="workspace"/><title type='text'>Creating SVN for Existing or New Project</title><content type='html'>&lt;br /&gt;
&lt;b&gt;Step 1:&lt;/b&gt; Create a directory where the repository will be maintained&lt;br /&gt;
mkdir /opt/svnrepos&lt;br /&gt;
cd /opt/svnrepos&lt;br /&gt;
svnadmin create projectName&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Step 2:&lt;/b&gt;&amp;nbsp;Add project to SVN&lt;br /&gt;
#Create project directory if it does not exist&lt;br /&gt;
mkdir /home/user/projectName&lt;br /&gt;
svn import /home/user/projectName file:///opt/svnrepos/projectName -m &quot;Initial commit of project&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Step 3:&lt;/b&gt;&amp;nbsp;Checkout project and start using SVN&lt;br /&gt;
cd /home/user/workspace&lt;br /&gt;
svn co file:///opt/svnrepos/projectName&lt;br /&gt;
cd projectName&lt;br /&gt;
svn status&lt;br /&gt;
svn log&lt;br /&gt;
For more frequently used SVN commands, see previous post &lt;a href=&quot;http://tadbytes.blogspot.com/2012/06/svn-most-frequently-used-commands.html&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/2942823069111254756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2014/07/creating-svn-for-existing-or-new-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/2942823069111254756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/2942823069111254756'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2014/07/creating-svn-for-existing-or-new-project.html' title='Creating SVN for Existing or New Project'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-1526325558368368768</id><published>2014-03-24T12:30:00.000-07:00</published><updated>2014-04-24T12:46:59.627-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="interrupts"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><title type='text'>Difference in interrupt counts from /proc/interrupts </title><content type='html'>&lt;br /&gt;
The following python script can be used to determine interrupt counts occurred between the before and after &quot;cat /proc/interrupts&quot;:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: python&quot;&gt;#!/usr/bin/python
&#39;Interrupt counts between before and after /proc/interrupts snapshots&#39;

import sys
from itertools import izip

def checkUsage():
&amp;nbsp;&amp;nbsp;&amp;nbsp; #Check Usage
&amp;nbsp;&amp;nbsp;&amp;nbsp; if len(sys.argv) &amp;lt; 3:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print &quot;Usage -&amp;gt;&quot;
        print sys.argv[0],&quot; &amp;lt;/proc/interrupts before&amp;gt; &amp;lt;/proc/interrupts after&amp;gt;&quot;

def readFiles(fileName1, fileName2):
&amp;nbsp;&amp;nbsp;&amp;nbsp; fileA = open(fileName1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; fileB = open(fileName2)
&amp;nbsp;&amp;nbsp;&amp;nbsp; for lineA, lineB in izip(fileA, fileB):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wordsA = lineA.rstrip().split()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wordsB = lineB.rstrip().split()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for wordA, wordB in izip(wordsA, wordsB):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if wordA.isdigit() and wordB.isdigit():
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.stdout.write(&quot;%s%s&quot; % (str(int(wordB) - int(wordA)),&quot;\t&quot;))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.stdout.write(&quot;%s%s&quot; % (wordB,&quot; &quot;))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print

def main():
&amp;nbsp;&amp;nbsp;&amp;nbsp; checkUsage()
&amp;nbsp;&amp;nbsp;&amp;nbsp; #readFile(sys.argv[1])
&amp;nbsp;&amp;nbsp;&amp;nbsp; readFiles(sys.argv[1], sys.argv[2])

#Don&#39;t execute if script is imported instead of executed
if __name__ == &#39;__main__&#39;:
&amp;nbsp;&amp;nbsp;&amp;nbsp; main()

&lt;/pre&gt;

Please leave me a comment if you find this post helpful.
</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/1526325558368368768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2014/03/difference-in-interrupt-counts-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/1526325558368368768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/1526325558368368768'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2014/03/difference-in-interrupt-counts-from.html' title='Difference in interrupt counts from /proc/interrupts '/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-1582231156954971090</id><published>2014-03-05T22:53:00.001-08:00</published><updated>2024-07-17T10:31:25.154-07:00</updated><title type='text'>Oracle RDBMS tips</title><content type='html'>&lt;br /&gt;
&lt;h3&gt;
Monitoring&lt;/h3&gt;
&lt;h4&gt;
Tables/Indexes&lt;/h4&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;desc user_tables&lt;/li&gt;
&lt;li&gt;desc user_indexes&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h4&gt;
DB CPU&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;V$SYSSTAT: Oracle CPU usage for all sessions. The parse time cpu statistic shows the total CPU time used for parsing.&lt;/li&gt;
&lt;li&gt;V$SESSTAT: Oracle CPU usage for each session.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;select * from v$resource_limit;&lt;/li&gt;
&lt;li&gt;select count(*) from V$process;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
&lt;span face=&quot;&amp;quot;tahoma&amp;quot; , sans-serif&quot; style=&quot;background-color: white; color: #222222; font-size: x-small; line-height: 19px;&quot;&gt;Wait Events&lt;/span&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;db file sequential read: usually single block INDEXED reads [1]. Faster disks or more spindles will help. Larger buffer cache may help. &lt;/li&gt;
&lt;li&gt;
db file scattered read
&lt;/li&gt;
&lt;li&gt;db file single write&lt;/li&gt;
&lt;li&gt;db file parallel write&lt;/li&gt;
&lt;li&gt;log file parallel write&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
Latches&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;HW enq&lt;/li&gt;
&lt;li&gt;Latch: Cache Buffer Chain - Ref [2]&lt;br /&gt;-- Find memory address:&lt;br /&gt;&lt;pre style=&quot;font-size: 11.6188px;&quot;&gt;SELECT 
      addr,
      sleeps
FROM 
      v$latch_children c,
      v$latchname n
WHERE
      n.name=&#39;cache buffers chains&#39; and
      c.latch#=n.latch# and
      sleeps &amp;gt; 100
ORDER BY sleeps;

-- Find file and block numbers:
&lt;pre style=&quot;font-size: 11.6188px;&quot;&gt;SELECT file#, dbablk, class, state, TCH
  FROM X$BH
  WHERE HLADDR=&#39;address of latch&#39;;
-- Find segment name from dba_segments&lt;/pre&gt;
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Data/Log/Sys Files&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;select name from v$datafile;&lt;/li&gt;
&lt;li&gt;select name from v$controlfile;&lt;/li&gt;
&lt;li&gt;select member from v$logfile;&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Tablespace Sizes&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote style=&quot;border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;select TABLESPACE_NAME, sum(decode(AUTOEXTENSIBLE, &#39;YES&#39;, MAXBYTES, BYTES))/1024/1024/1024 MAX_SIZE_IN_GB, count(*) NUM_TABLES&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;from DBA_DATA_FILES&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;group by TABLESPACE_NAME;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h3&gt;
Performance Tuning Recommendations&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;#Transactions = based on the application, the number of concurrent transactions that can occur&lt;/li&gt;
&lt;li&gt;#Sessions = (1.1 * PROCESSES) + 5&lt;/li&gt;
&lt;li&gt;DML_LOCKS = #Transactions * (avg #SQLs per transaction) &lt;/li&gt;
&lt;li&gt;&lt;code&gt;REPLICATION_DEPENDENCY_TRACKING: disable where replication is not required as skipping tracking generation will make read/write operations faster&amp;nbsp;&amp;nbsp;&lt;/code&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;References&lt;/h3&gt;
[1] http://asktom.oracle.com/pls/asktom/f?p=100:11:0:::%3AP11_QUESTION_ID:6265095774206&lt;br /&gt;
[2]&amp;nbsp;https://docs.oracle.com/cd/B16240_01/doc/doc.102/e16282/oracle_database_help/oracle_database_wait_bottlenecks_latch_cache_buffer_chains_pct.html&lt;br /&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/1582231156954971090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2014/03/oracle-rdbms-tips.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/1582231156954971090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/1582231156954971090'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2014/03/oracle-rdbms-tips.html' title='Oracle RDBMS tips'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-4613983058996393106</id><published>2014-01-20T17:30:00.000-08:00</published><updated>2014-04-02T08:53:56.303-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dns"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="RHEL"/><category scheme="http://www.blogger.com/atom/ns#" term="ssh"/><category scheme="http://www.blogger.com/atom/ns#" term="sshd"/><title type='text'>Avoiding SSH delay</title><content type='html'>&lt;br /&gt;
# Enable verbose mode in ssh to determine where the hang is&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
[local-host]$ ssh -v &amp;lt;remote-host&amp;gt;&lt;/blockquote&gt;
&lt;br /&gt;
It will result in the following:&lt;br /&gt;
&lt;blockquote&gt;
debug1: Reading configuration data /etc/ssh/ssh_config&lt;br /&gt;
debug1: Applying options for *&lt;br /&gt;
debug1: Connecting to &amp;lt;remote-host&amp;gt; [&amp;lt;remote-IP&amp;gt;] port 22.&lt;br /&gt;
debug1: Connection established.&lt;br /&gt;
debug1: permanently_set_uid: 0/0&lt;br /&gt;
debug1: identity file /root/.ssh/id_rsa type -1&lt;br /&gt;
debug1: identity file /root/.ssh/id_dsa type -1&lt;br /&gt;
debug1: loaded 2 keys&lt;br /&gt;
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3&lt;br /&gt;
debug1: match: OpenSSH_4.3 pat OpenSSH*&lt;br /&gt;
debug1: Enabling compatibility mode for protocol 2.0&lt;br /&gt;
debug1: Local version string SSH-2.0-OpenSSH_4.3&lt;br /&gt;
debug1: SSH2_MSG_KEXINIT sent&lt;br /&gt;
debug1: SSH2_MSG_KEXINIT received&lt;br /&gt;
debug1: kex: server-&amp;gt;client &amp;lt;port1&amp;gt; &amp;lt;port2&amp;gt; none&lt;br /&gt;
debug1: kex: client-&amp;gt;server&amp;nbsp;&amp;lt;port1&amp;gt; &amp;lt;port2&amp;gt;&amp;nbsp;none&lt;br /&gt;
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024&amp;lt;2048&amp;lt;8192) sent&lt;br /&gt;
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP&lt;br /&gt;
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent&lt;br /&gt;
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY&lt;br /&gt;
debug1: Host &#39;&amp;lt;remote-host&amp;gt;&#39; is known and matches the RSA host key.&lt;br /&gt;
debug1: Found key in /root/.ssh/known_hosts:33&lt;br /&gt;
debug1: ssh_rsa_verify: signature correct&lt;br /&gt;
debug1: SSH2_MSG_NEWKEYS sent&lt;br /&gt;
debug1: expecting SSH2_MSG_NEWKEYS&lt;br /&gt;
debug1: SSH2_MSG_NEWKEYS received&lt;br /&gt;
debug1: SSH2_MSG_SERVICE_REQUEST sent&lt;br /&gt;
&lt;b&gt;debug1: SSH2_MSG_SERVICE_ACCEPT received&lt;/b&gt;&lt;br /&gt;
debug1: Authentications that can continue: publickey,password&lt;br /&gt;
debug1: Next authentication method: publickey&lt;br /&gt;
debug1: Trying private key: /root/.ssh/id_rsa&lt;br /&gt;
debug1: Trying private key: /root/.ssh/id_dsa&lt;br /&gt;
debug1: Next authentication method: password&lt;br /&gt;
root@&amp;lt;remote-host&amp;gt;&#39;s password:&lt;br /&gt;
&lt;br /&gt;&lt;/blockquote&gt;
Sometimes the ssh appears to hang / wait for a while at the line in bold above. It is usually due to the UseDNS - default is yes. Disabling it and restarting sshd on the remote-host should fix this delay in ssh:&lt;br /&gt;
&lt;br /&gt;
Add the following line in bold to /etc/ssh/sshd_config on remote-host:&lt;br /&gt;
&lt;blockquote&gt;
# &amp;nbsp; &amp;nbsp; &amp;nbsp;UseDNS &amp;nbsp;Specifies whether sshd should look up the remote host name and&lt;br /&gt;
# &amp;nbsp; &amp;nbsp; &amp;nbsp;check that the resolved host name for the remote IP address maps&lt;br /&gt;
# &amp;nbsp; &amp;nbsp; &amp;nbsp;back to the very same IP address.The default is &quot;yes&quot;.&lt;br /&gt;
&lt;b&gt;UseDNS no&lt;/b&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Restart sshd on the remote-host:&lt;br /&gt;
&lt;blockquote&gt;
[remote-host]$ service sshd restart&lt;/blockquote&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/4613983058996393106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2014/01/avoiding-ssh-delay.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/4613983058996393106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/4613983058996393106'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2014/01/avoiding-ssh-delay.html' title='Avoiding SSH delay'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-8825989480325986417</id><published>2013-09-18T11:43:00.002-07:00</published><updated>2014-10-31T11:41:27.920-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cheat"/><category scheme="http://www.blogger.com/atom/ns#" term="commands"/><category scheme="http://www.blogger.com/atom/ns#" term="git"/><category scheme="http://www.blogger.com/atom/ns#" term="sheet"/><title type='text'>GIT commonly used commands</title><content type='html'>&lt;div class=&quot;moz-text-html&quot; lang=&quot;x-unicode&quot;&gt;
&lt;b&gt;GIT Structure&lt;/b&gt; &lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Central repo (remote-repo)&lt;/li&gt;
&lt;li&gt;Local repo (local-repo): Local copy of remote-repo. If there are new pushes to remote-repo, local-repo will be behind. If you have unpushed checkins, local-repo will be ahead of remote-repo.&lt;/li&gt;
&lt;li&gt;Local index (index): Changed or new Files need to be staged/added to index, before it can be checked in.&lt;/li&gt;
&lt;li&gt;Personal workspace (ws): Working copy of the local-repo. &amp;nbsp; &lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Creating local-repo and ws for the first time&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;git branch -a # Show all branches including remote&lt;/li&gt;
&lt;li&gt;git checkout &amp;lt;branch&amp;gt; # Switch to branch&lt;/li&gt;
&lt;li&gt;git status # Check current branch&lt;/li&gt;
&lt;li&gt;git log # commit/push history&lt;/li&gt;
&lt;li&gt;git pull origin &amp;lt;branch&amp;gt; # pull branch from remote to current
    branch. To update current ws branch, use same branch name.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;Sequence of Steps&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;pull / rebase [remote to ws]&lt;/li&gt;
&lt;li&gt; git pull origin &amp;lt;branch&amp;gt; # pull branch from remote to
          current branch. To update current ws branch, use same branch
          name.&lt;/li&gt;
&lt;li&gt;fetch [remote to local]&lt;/li&gt;
&lt;li&gt;checkout HEAD [local to ws]&lt;/li&gt;
&lt;li&gt;checkout [index to ws]&lt;/li&gt;
&lt;li&gt;diff HEAD [b/w ws and local]&lt;/li&gt;
&lt;li&gt;diff [b/w ws and index]&lt;/li&gt;
&lt;li&gt;add (-u) [ws to index]&lt;/li&gt;
&lt;li&gt;commit [index to local]&lt;/li&gt;
&lt;li&gt;commit -a [ws to local]&lt;/li&gt;
&lt;li&gt;push [local to repo]&lt;/li&gt;
&lt;li&gt; git push origin &amp;lt;branch&amp;gt; # To push current ws branch,
          use same branch name. Default is all local branches.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;Review changes&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Commit history: git log&lt;/li&gt;
&lt;li&gt;Last commit changes: git show&lt;/li&gt;
&lt;li&gt;Commit history with changes: git log -p&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Check if a commit is merged to current branch: git branch --contains&amp;nbsp; &amp;lt;6 digits of commit number&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Revert local changes&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;git checkout &amp;lt;specific-file&amp;gt;&lt;/li&gt;
&lt;li&gt;git checkout -- . # all unstaged changes will be lost&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git reset HEAD &amp;lt;file&amp;gt; or&lt;/code&gt;&lt;code&gt; git rm
          --cached &lt;/code&gt;&lt;code&gt;# to remove file from commit. reset is
          the preferred way as rm without --cached could delete the file
          loosing changes&lt;br /&gt;
        &lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Merge&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;git checkout main-branch&lt;/li&gt;
&lt;li&gt;git pull to latest...&lt;br /&gt;
      &lt;/li&gt;
&lt;li&gt;git merge side-branch&lt;/li&gt;
&lt;li&gt;resolve conflicts manually, see git status and do git add
        &amp;lt;resolved file&amp;gt;&lt;/li&gt;
&lt;li&gt;git branch -d &amp;lt;local branch&amp;gt;&lt;/li&gt;
&lt;li&gt;git push origin :remote-branch&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #
          : implies &lt;b&gt;delete&lt;/b&gt; remote
          branch&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Stash&lt;/b&gt;
    &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;git stash&lt;/li&gt;
&lt;li&gt;git stash list&lt;/li&gt;
&lt;li&gt;git stash pop&lt;/li&gt;
&lt;li&gt;git stash drop&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Alias&lt;/b&gt;&lt;br /&gt;
To use git &amp;lt;alias_name&amp;gt;: &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class=&quot;comment-copy&quot;&gt;&lt;code&gt;git config --global
            alias.unstage &#39;reset HEAD --&#39;;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class=&quot;comment-copy&quot;&gt;&lt;code&gt;git unstage myfile&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span class=&quot;comment-copy&quot;&gt;&lt;code&gt;git &lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span class=&quot;comment&quot;&gt;config --global &lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span class=&quot;comment&quot;&gt;&lt;code&gt;&lt;span class=&quot;comment&quot;&gt;alias.uncommit &lt;/span&gt;&lt;/code&gt;&#39;reset&lt;/span&gt; &lt;span class=&quot;literal&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;literal&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;soft&lt;/span&gt; &lt;span class=&quot;comment&quot;&gt;HEAD^&#39;; &lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Delete/Cleanup Remote/Local branch&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git remote prune origin // remove invalid local references to deleted remote branch&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git gc --prune=now // local cleanup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git branch -d trac29-consol-wsdl / /delete local branch&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/8825989480325986417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2013/09/git-commonly-used-commands.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/8825989480325986417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/8825989480325986417'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2013/09/git-commonly-used-commands.html' title='GIT commonly used commands'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-124693436332639970</id><published>2013-01-03T12:24:00.000-08:00</published><updated>2013-09-18T11:46:25.552-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apache"/><category scheme="http://www.blogger.com/atom/ns#" term="ds3"/><category scheme="http://www.blogger.com/atom/ns#" term="openssl"/><category scheme="http://www.blogger.com/atom/ns#" term="rsa"/><category scheme="http://www.blogger.com/atom/ns#" term="ssl"/><title type='text'>Self Signed SSL Certificate</title><content type='html'>&lt;br /&gt;
&lt;b&gt;
Generate RSA Private Key&lt;/b&gt;&lt;br /&gt;
openssl genrsa -des3 -out server.key 1024&lt;br /&gt;
&lt;br /&gt;

&lt;b&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Generate Certificate Signing Request (CSR)&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;openssl req -new -key server.key -out server.csr&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;/span&gt;

&lt;br /&gt;

&lt;b&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Remove Passphrase from Key&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;cp server.key server.key.org&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;openssl rsa -in server.key.org -out server.key&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;

&lt;b&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Generate Self-Signed Certificate&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;openssl x509 -req -days 5000 -in server.csr -signkey server.key -out server.crt&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;background-color: white;&quot;&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;b&gt;
Verify/Install mod_ssl&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;Requires mod_ssl be installed for Apache&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;Look for mod_ssl.so in httpd/modules dir or rpm -qa |grep mod_ssl&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;Otherwise, use yum install mod_ssl or download mod_ssl rpm and install.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;mod_ssl does have dependency on distcache, so distcache also need to be installed&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Install Private Key and Certificate&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&amp;lt;httpd-conf&amp;gt; could be different based on Apache installation. For example, /etc/httpd/conf&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;cp server.crt&amp;nbsp;&amp;lt;httpd-conf&amp;gt;/ssl.crt&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;cp server.key&amp;nbsp;&amp;lt;httpd-conf&amp;gt;/ssl.key&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;

&lt;b&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Configure SSL Enabled Virtual Hosts&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;When mod_ssl is installed it creates a ssl.conf, usually in /etc.httpd/conf.d. Verify that you have the following entries:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;SSLEngine on&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;SSLCertificateFile &amp;lt;httpd-conf&amp;gt;/ssl.crt/server.crt&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;SSLCertificateKeyFile&amp;nbsp;&amp;lt;httpd-conf&amp;gt;/ssl.key/server.key&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;SetEnvIf User-Agent &quot;.*MSIE.*&quot; nokeepalive ssl-unclean-shutdown&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;CustomLog logs/ssl request log &quot;%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \&quot;%r\&quot; %b&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;

&lt;b&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Restart Apache and Test&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;https://&amp;lt;Server_Host&amp;gt;:&amp;lt;Port&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;Reference&lt;/span&gt;&lt;/h3&gt;
&lt;a href=&quot;http://www.akadia.com/services/ssh_test_certificate.html&quot; style=&quot;background-color: white;&quot;&gt;http://www.akadia.com/services/ssh_test_certificate.html&lt;/a&gt;&lt;br /&gt;
&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/124693436332639970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2013/01/self-signed-ssl-certificate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/124693436332639970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/124693436332639970'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2013/01/self-signed-ssl-certificate.html' title='Self Signed SSL Certificate'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-3514916582425557049</id><published>2012-11-24T19:11:00.000-08:00</published><updated>2012-12-14T11:38:08.778-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apache"/><category scheme="http://www.blogger.com/atom/ns#" term="fastcgi"/><category scheme="http://www.blogger.com/atom/ns#" term="fcgi"/><category scheme="http://www.blogger.com/atom/ns#" term="httpd"/><title type='text'>FastCGI with Apache2.2</title><content type='html'>&lt;br /&gt;
&lt;h2&gt;
Install FastCGI (FCGI) on RHEL5 / Oracle Linux 5&lt;/h2&gt;
&lt;br /&gt;
1. Install httpd rpm along with dependencies. The following packages (and any dependencies) will have to be installed:&lt;br /&gt;
&lt;br /&gt;
apr&lt;br /&gt;
postgresql-libs&lt;br /&gt;
apr-util&lt;br /&gt;
&lt;div&gt;
httpd&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
2. Install the following additional packages to build and install fcgi module:&lt;/div&gt;
&lt;div&gt;
expat-devel&lt;br /&gt;
cyrus-sasl-devel&lt;br /&gt;
openldap-devel&lt;br /&gt;
&lt;br /&gt;
db4-devel&lt;br /&gt;
&lt;div&gt;
httpd-devel (this package will install the required&amp;nbsp;/usr/lib64/httpd/build/special.mk and also installs a useful apxs utility)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
3. Untar mod_fcgi 2.4.6 in /root&lt;/div&gt;
&lt;div&gt;
make&amp;nbsp;top_dir=/usr/lib64/httpd&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
make&amp;nbsp;top_dir=/usr/lib64/httpd install&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Debugging&lt;/b&gt;&lt;br /&gt;
If you encounter:&lt;br /&gt;
Missing /usr/lib64/httpd/build/special.mk&lt;br /&gt;
Ensure that httpd-devel was installed:&lt;br /&gt;
rpm -qa|grep httpd-devel&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/3514916582425557049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2012/11/fastcgi-with-apache22.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/3514916582425557049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/3514916582425557049'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2012/11/fastcgi-with-apache22.html' title='FastCGI with Apache2.2'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-30457564258351808</id><published>2012-08-24T09:59:00.001-07:00</published><updated>2015-03-16T22:08:18.782-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="rpm"/><title type='text'>Linux rpm commands</title><content type='html'>Following are the rpm commands I regularly use on RHEL and variants:

&lt;br /&gt;
&lt;br /&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;2&quot; cellspacing=&quot;1&quot; style=&quot;width: 100%;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
  &lt;td&gt;&lt;b&gt;Command&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Example&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;rpm -qa&lt;/td&gt;&lt;td&gt;List all installed rpms&lt;/td&gt;&lt;td&gt;rpm -qa | grep kernel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;rpm -qlm &amp;lt;rpm file&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
rpm -qpl &amp;lt;rpm file&amp;gt;&lt;/td&gt;
  &lt;td&gt;List the files contained in the .rpm file&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;rpm -ivh &amp;lt;rpm file&amp;gt;&lt;/td&gt;
  &lt;td&gt;Check for dependency then install rpm&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;rpm -Uvh &amp;lt;rpm file&amp;gt;&lt;/td&gt;
  &lt;td&gt;Check for dependency then update package&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;rpm2cpio &lt;rpm file=&quot;file&quot;&gt; &amp;lt;rpm file&amp;gt; | cpio -idmv &amp;lt;leave empty for all or specify specific files in the rpm&amp;gt;&lt;/rpm&gt;&lt;/td&gt;
  &lt;td&gt;Extract files contained in the rpm&amp;nbsp;(without install)&amp;nbsp;into current directory&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/30457564258351808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2012/08/linux-rpm-commands.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/30457564258351808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/30457564258351808'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2012/08/linux-rpm-commands.html' title='Linux rpm commands'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-6390284154452610427</id><published>2012-07-31T14:19:00.000-07:00</published><updated>2012-07-31T14:19:20.659-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="postgres"/><category scheme="http://www.blogger.com/atom/ns#" term="postgresql"/><title type='text'>PostgreSQL Permission Denied</title><content type='html'>To debug and fix issues related to permission problem with PostgreSQL, especially so when creating tablespaces, the following is useful:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Disable firewalls and selinux&lt;/li&gt;
&lt;li&gt;Check which user is postgres server running as.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Assuming it is running as postgres user, login as user postgres&lt;/li&gt;
&lt;li&gt;Check &quot;id&quot; to ensure user postgres is&amp;nbsp;part&amp;nbsp;of group postgres&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Create the tablespace directory at the required location using mkdir. If you get permission error, fix that and retry. &lt;b&gt;Do not&lt;/b&gt;&amp;nbsp;create the directory as root.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
The problem should be fixed.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Please leave a comment to share what worked for you to resolve PostgreSQL permission problems. Thanks!&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/6390284154452610427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2012/07/postgresql-permission-denied.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/6390284154452610427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/6390284154452610427'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2012/07/postgresql-permission-denied.html' title='PostgreSQL Permission Denied'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-5380368176125970478</id><published>2012-07-31T14:13:00.000-07:00</published><updated>2012-08-01T10:45:13.283-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="fuser"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="lsof"/><category scheme="http://www.blogger.com/atom/ns#" term="netstat"/><category scheme="http://www.blogger.com/atom/ns#" term="port"/><title type='text'>Linux: Which process is listening on a port?</title><content type='html'>&lt;br /&gt;
Under various circumstances, like when starting up a server or a service, you may encounter &quot;port already in use&quot; error. Here are different ways to determine which process is using that port.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;netstat -tulpn | grep &amp;lt;portNumber&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fuser &amp;lt;port#&amp;gt;/tcp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lsof -i tcp:&amp;lt;port#&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
To determine if the commands are available on your system, try:&lt;br /&gt;
&lt;code&gt;whereis &amp;lt;command&amp;gt;&lt;/code&gt;&lt;br /&gt;
e.g. whereis fuser&lt;br /&gt;
&lt;br /&gt;
Once the pid is known for the process using the port, get information on the running process along with its command line:&lt;br /&gt;
&lt;code&gt;ps -aux | grep &amp;lt;pid&amp;gt;&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Reference&lt;/h3&gt;
&lt;a href=&quot;http://www.cyberciti.biz/faq/what-process-has-open-linux-port/&quot;&gt;http://www.cyberciti.biz/faq/what-process-has-open-linux-port&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/5380368176125970478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2012/07/linux-which-process-is-listening-on-port.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/5380368176125970478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/5380368176125970478'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2012/07/linux-which-process-is-listening-on-port.html' title='Linux: Which process is listening on a port?'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-464907278834676106</id><published>2012-07-20T09:51:00.000-07:00</published><updated>2012-07-26T10:07:37.875-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JVM"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="OOM"/><title type='text'>OutOfMemoryError: Unable to create new native thread</title><content type='html'>This post suggests how to fix OutOfMemmory (OOM) error with Java on Linux. There are 2 things to try:&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;[1] Reduce the stack size in JVM command line and for Linux.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;RHEL/Oracle Linux default is 8096k to 10240k, while even for most enterprise applications as low as 128k may suffice. HotSpot JDK7 seems to suggest a minimum of 160k. So:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Add &quot;-Xss160k&quot; to the JVM commandline&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Set &quot;ulimit -s 160&quot; from the Linux shell and confirm with &quot;ulimit -a&quot;. This setting is per user session. To make it persist for a user, add it to /etc/security/limits.conf&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
[2] Track the total number of threads on the system:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
watch &#39;ps -efL|wc -l&#39;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Check the system limit:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
cat /proc/sys/kernel/pid_max # Usually 32768&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
If the total number of threads reaches this pid_max, JVM will throw OOM with unable to create new native threads error.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
To fix this issue:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Increase the system limit as root:&lt;br /&gt;&lt;span style=&quot;background-color: white;&quot;&gt;echo 65536 &amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;/proc/sys/kernel/pid_max&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Or, to persist across reboots, add the following to /etc/sysctl.conf:&lt;br /&gt;&lt;span style=&quot;background-color: white;&quot;&gt;kernel.pid_max = 65536&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/464907278834676106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2012/07/outofmemoryerror-unable-to-create-new.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/464907278834676106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/464907278834676106'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2012/07/outofmemoryerror-unable-to-create-new.html' title='OutOfMemoryError: Unable to create new native thread'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-183419541915682142</id><published>2012-07-19T07:53:00.000-07:00</published><updated>2012-07-26T10:07:59.119-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="vim"/><title type='text'>Vim - Matching Braces</title><content type='html'>Matching {}, (), [], /* */, can be very helpful when using vi to read a program code.&lt;br /&gt;
&lt;br /&gt;
In command mode, take your cursor to one of the start/end braces or comment mark and press %, that is, Shift + 5 on most keyboards.&lt;br /&gt;
&lt;br /&gt;
Another useful trick is to highlight the code between the matching tags, and can be achieved simply by:&lt;br /&gt;
:noremap % v%&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;


References&lt;/h3&gt;
&lt;a href=&quot;http://vim.wikia.com/wiki/Moving_to_matching_braces&quot;&gt;http://vim.wikia.com/wiki/Moving_to_matching_braces&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/183419541915682142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2012/07/vim-matching-braces.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/183419541915682142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/183419541915682142'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2012/07/vim-matching-braces.html' title='Vim - Matching Braces'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-3982439987089520496</id><published>2012-06-04T09:53:00.004-07:00</published><updated>2012-06-04T09:53:56.009-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="svn"/><title type='text'>SVN Most Frequently Used Commands</title><content type='html'>&lt;u&gt;Legend&lt;/u&gt;&lt;b&gt;: bold&lt;/b&gt;&amp;nbsp;=&amp;gt; command;&amp;nbsp;&amp;lt;&amp;gt; =&amp;gt; optional option;&amp;nbsp;[] =&amp;gt; required option&lt;br /&gt;
&lt;br /&gt;
Check the status of your local copy&lt;br /&gt;
&lt;b&gt;svn status&lt;/b&gt;&lt;br /&gt;
Sync up with the repository&lt;br /&gt;
&lt;b&gt;svn update&lt;/b&gt;&lt;br /&gt;
Check history of commit&lt;br /&gt;
&lt;b&gt;svn log&lt;/b&gt; &amp;lt;dir/file&amp;gt;&lt;br /&gt;
Check history of commits with list of affected files&lt;br /&gt;
&lt;b&gt;svn log -v &lt;/b&gt;&amp;lt;dir/file&amp;gt;&lt;br /&gt;
Diff local copy with latest repository version&lt;br /&gt;
&lt;b&gt;svn diff &lt;/b&gt;&amp;lt;file/dir&amp;gt;&lt;br /&gt;
Diff between two revisions&lt;br /&gt;
&lt;b&gt;svn diff -r [rev1]:[rev2]&lt;/b&gt;&amp;nbsp;&amp;lt;file/dir&amp;gt;&lt;br /&gt;
Diff ignoring Ctrl+M characters at the end of line&lt;br /&gt;
&lt;b&gt;svn diff -x --ignore-eol-style &lt;/b&gt;&amp;lt;file/dir&amp;gt;&lt;br /&gt;
Commit&lt;br /&gt;
&lt;b&gt;svn commit -m &quot;&lt;/b&gt;[comment]&lt;b&gt;&quot;&lt;/b&gt; &amp;lt;file/dir&amp;gt;&lt;br /&gt;
Add new files&lt;br /&gt;
&lt;b&gt;svn add&lt;/b&gt; &amp;lt;file/dir&amp;gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/3982439987089520496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2012/06/svn-most-frequently-used-commands.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/3982439987089520496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/3982439987089520496'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2012/06/svn-most-frequently-used-commands.html' title='SVN Most Frequently Used Commands'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-6539121433417304176</id><published>2012-05-14T16:40:00.001-07:00</published><updated>2012-05-15T22:42:42.693-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="network"/><category scheme="http://www.blogger.com/atom/ns#" term="p2p"/><title type='text'>Linux Point to Point Network Connection</title><content type='html'>Point to point connection is a network connection between 2 machines without a switch in between. Basically, both the ends of the cables are directly inserted into the 2 machines to be connected via p2p.&lt;br /&gt;
&lt;br /&gt;
Advantages of p2p include avoiding routing overhead from the switch, simplicity, and to security.&lt;br /&gt;
&lt;br /&gt;
Configuration is simply:&lt;br /&gt;
&lt;br /&gt;
/sbin/ifconfig &amp;lt;dev&amp;gt; inet &amp;lt;local-host-ip&amp;gt; netmask 255.255.255.0 pointopoint &amp;lt;destination-ip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;For example:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Machine 1&lt;br /&gt;
&lt;br /&gt;
/sbin/ifconfig eth0 inet 192.168.0.10 netmask 255.255.255.0 pointopoint 192.168.0.11&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Machine 2&lt;br /&gt;
&lt;br /&gt;
/sbin/ifconfig eth0 inet 192.168.0.11 netmask 255.255.255.0 pointopoint 192.168.0.10&lt;br /&gt;
&lt;br /&gt;
ping 192.168.0.10 # This should work now if your network cable is connected properly&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Debug&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/sbin/ethtool eth0 # Should show correct speed and link detected should be &quot;yes&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Reference&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://docstore.mik.ua/orelly/networking/tcpip/ch06_01.htm&quot;&gt;http://docstore.mik.ua/orelly/networking/tcpip/ch06_01.htm&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/6539121433417304176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2012/05/linux-point-to-point-network-connection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/6539121433417304176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/6539121433417304176'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2012/05/linux-point-to-point-network-connection.html' title='Linux Point to Point Network Connection'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-242036374617768780</id><published>2012-03-19T15:33:00.001-07:00</published><updated>2012-03-20T14:52:05.478-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="swap"/><title type='text'>Cleaning Memory on Linux</title><content type='html'>If your system shows a lot of inactive memory or Swap space in use and you wish to cleanup before starting next job, then here is what you can do:&lt;br /&gt;
&lt;br /&gt;
$ sync&lt;br /&gt;
&lt;br /&gt;
# Cleanup memory held-up in Inactive and return to Unused, also removes unused pages/inodes/delentries from used memory&lt;br /&gt;
$ echo 3 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&lt;br /&gt;
# Empty used up Swap space&lt;br /&gt;
# Disable swap and then re-enable&lt;br /&gt;
# This method is an aggressive one and if there isn&#39;t enough RAM free to hold up required pages from Swap, the system may crash&lt;br /&gt;
$ /sbin/swapoff -a&lt;br /&gt;
$ /sbin/swapon -a&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, Trebuchet, Verdana, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, Trebuchet, Verdana, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/242036374617768780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2012/03/clearing-swap-on-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/242036374617768780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/242036374617768780'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2012/03/clearing-swap-on-linux.html' title='Cleaning Memory on Linux'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-4110684660092571821</id><published>2012-03-01T11:08:00.000-08:00</published><updated>2014-02-11T10:53:12.693-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="email"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="lvm"/><category scheme="http://www.blogger.com/atom/ns#" term="mcelog"/><category scheme="http://www.blogger.com/atom/ns#" term="mdadm"/><category scheme="http://www.blogger.com/atom/ns#" term="OProfile"/><title type='text'>Linux Tools</title><content type='html'>This list will continue to grow as I come across useful tools in Linux. I have also listed the command-line that I most frequently use:&lt;br /&gt;
&lt;br /&gt;
ps - get the process information&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;,Courier,monospace; font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;,Courier,monospace; font-size: 10pt;&quot;&gt;ps -flycae # will give information on scheduling class and kernel function name where process is sleeping&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
mcelog - Machine check log&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Determine system errors, decode, and log in syslog like /var/log/messages&lt;br /&gt;mcelog --dmi --syslog&lt;br /&gt;PS: The decoded hardware module is sometimes not helpful in determining the module at fault&lt;/li&gt;
&lt;/ul&gt;
OProfile - Profiling Linux system&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Covered under separate post &lt;a href=&quot;http://tadbytes.blogspot.com/2012/03/oprofile-system-profiling-on-linux.html&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
mdadm - Manage Software&amp;nbsp; RAID&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Use mdadm for software mirroring devices:&lt;br /&gt;mdadm -C --level=raid1 --raid-devices=2 /dev/md0 /dev/sdb1 /dev/sdc1&lt;br /&gt;
mdadm --manage /dev/md0 --fail /dev/sdc1&lt;br /&gt;
mdadm --manage /dev/md0 --remove /dev/sdc1&lt;br /&gt;
mdadm --manage --stop /dev/md0&lt;br /&gt;For striping, better to use LVM &lt;/li&gt;
&lt;/ul&gt;
LVM - Logical Volume Manager&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;pvcreate &amp;lt;list of devices&amp;gt;&lt;/li&gt;
&lt;li&gt;vgcreate &amp;lt;vg-name&amp;gt; &amp;lt;list of pv devices&amp;gt;&lt;/li&gt;
&lt;li&gt;lvcreate -i&amp;lt;#of vg devices to stripe across&amp;gt; -I&amp;lt;stripe-size-default64k&amp;gt; -L&amp;lt;size-in-MB&amp;gt; -n&amp;lt;volume-name&amp;gt; &amp;lt;vg-name&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
MUTT - The Mutt Mail User Agent&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;echo &quot;&amp;lt;message-body&amp;gt;&quot; | mutt -a &amp;lt;attachment-file&amp;gt; -s &quot;&amp;lt;subject&amp;gt;&quot; &amp;lt;To email&amp;gt; [-b &amp;lt;BCC email&amp;gt;] [-c &amp;lt;CC email&amp;gt;]&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/4110684660092571821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2012/03/linux-tools.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/4110684660092571821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/4110684660092571821'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2012/03/linux-tools.html' title='Linux Tools'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-2537599371504166252</id><published>2012-03-01T11:01:00.001-08:00</published><updated>2012-09-26T15:26:02.821-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="OProfile"/><title type='text'>OProfile: System / JIT Profiling on Linux</title><content type='html'>&lt;b&gt;Requirements&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://oprofile.sourceforge.net/download/&quot; target=&quot;_blank&quot;&gt;Oprofile tar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;kernel-debuginfo-`uname -r`.rpm&lt;/li&gt;
&lt;li&gt;kernel-debuginfo-commons-`uname -r`.rpm &lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Setup&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Install kernel-debuginfo rpms for the kernel you are running.&lt;br /&gt;
&lt;br /&gt;
As root user:&lt;b&gt; &lt;/b&gt;&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
$ tar zvxf oprofile-0.9.7.tar&lt;br /&gt;
$ cd oprofile-0.9.7&lt;br /&gt;
$&amp;nbsp;&lt;span style=&quot;background-color: #e0e0e0;&quot;&gt;CFLAGS=&quot;-m64&quot; CXXFLAGS=&quot;-m64&quot; ./configure \&lt;/span&gt;&lt;br /&gt;
&lt;pre class=&quot;screen&quot; style=&quot;background-color: #e0e0e0;&quot;&gt;   --with-java={my_jdk_installdir} \
   --libdir=/usr/local/lib64&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Ensure that configure has passed, otherwise resolve any issues with missing headers and libraries and rerun configure as above. One common issue people run into on RHEL 5:&lt;br /&gt;
checking libiberty.h usability... no
&lt;br /&gt;
checking libiberty.h presence... no
&lt;br /&gt;
checking for libiberty.h... no
&lt;br /&gt;
checking for cplus_demangle in -liberty... no
&lt;b&gt;Solution: &lt;/b&gt;Install binutils-devel rpm&amp;nbsp;
&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
$ make&lt;br /&gt;
$ make install
&lt;/blockquote&gt;
&lt;b&gt;Profiling JIT&lt;/b&gt;&lt;br /&gt;
For JIT profiling, the following option needs to be added to the Java command-line:&lt;br /&gt;
&lt;pre class=&quot;screen&quot;&gt;&lt;code class=&quot;option&quot;&gt;-agentpath:&amp;lt;libdir&amp;gt;/libjvmti_oprofile.so&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;screen&quot;&gt;&lt;code class=&quot;option&quot;&gt;OR&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;screen&quot;&gt;&lt;code class=&quot;option&quot;&gt;-agentlib:jvmti_oprofile&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;screen&quot;&gt;&lt;code class=&quot;option&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;screen&quot;&gt;&lt;code class=&quot;option&quot;&gt;Also, add &lt;/code&gt;&lt;code class=&quot;filename&quot;&gt;&amp;lt;oprof_install_dir&amp;gt;/lib/oprofile to LD_LIBRARY_PATH&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;screen&quot;&gt;&lt;code class=&quot;filename&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;screen&quot;&gt;&lt;code class=&quot;filename&quot;&gt;[&lt;a href=&quot;http://oprofile.sourceforge.net/doc/setup-jit.html&quot; target=&quot;_blank&quot;&gt;See Ref&lt;/a&gt;]&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;option&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;option&quot;&gt; &lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Collection&lt;/b&gt;&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
$ opcontrol --reset&lt;br /&gt;
$ opcontrol --vmlinux=/usr/lib/debug/lib/modules/`uname -r`/vmlinux&lt;br /&gt;
$ opcontrol --session-dir=$DIR&lt;br /&gt;
$ opcontrol --start&lt;br /&gt;
$ opcontrol --stop&lt;br /&gt;
$ opcontrol --dump&lt;br /&gt;
$ opcontrol --save &amp;lt;session-name&amp;gt;&lt;br /&gt;
$ opcontrol --shutdown&lt;/blockquote&gt;
&lt;br /&gt;
&lt;b&gt;Report&lt;/b&gt;&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
$ opreport session:&amp;lt;session-name&amp;gt;&lt;br /&gt;
$ opreport session:&amp;lt;session-name&amp;gt; --image-path /lib/modules/`uname -r`/kernel [--details | -d]&lt;br /&gt;
$ opreport session:&amp;lt;session-name&amp;gt; --image-path /lib/modules/`uname -r`/kernel [--symbols | -l]&lt;br /&gt;
$ opreport session:&amp;lt;session-name&amp;gt; [--callgraph | -c]&lt;/blockquote&gt;
&lt;br /&gt;
&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://oprofile.sourceforge.net/&quot;&gt;oprofile.sourceforge.net&lt;/a&gt;&amp;nbsp;[&lt;a href=&quot;http://oprofile.sourceforge.net/doc/install.html&quot; target=&quot;_blank&quot;&gt;JVMTI&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/2537599371504166252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2012/03/oprofile-system-profiling-on-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/2537599371504166252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/2537599371504166252'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2012/03/oprofile-system-profiling-on-linux.html' title='OProfile: System / JIT Profiling on Linux'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-2267409587226906685</id><published>2012-02-22T19:17:00.000-08:00</published><updated>2015-05-19T00:41:48.162-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cloud"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="JEE"/><category scheme="http://www.blogger.com/atom/ns#" term="JEE7"/><title type='text'>Java EE 7: Moving into the Cloud</title><content type='html'>&lt;br /&gt;
Updated: Java EE 7 launch webcasts:&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;//www.youtube.com/embed/videoseries?list=PL74xrT3oGQfCCLFJ2HCTR_iN5hV4penDz&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
For quick reference, this post lists the JSRs planned for the Java EE 7, slated to be released in Q2 of 2013:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strike&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=107&quot; target=&quot;_blank&quot;&gt;JSR 107&lt;/a&gt;&amp;nbsp;- JCACHE: Java Temporary Caching API&lt;/strike&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=236&quot; target=&quot;_blank&quot;&gt;JSR 236&lt;/a&gt;&amp;nbsp;- Concurrency Utilities for Java EE&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=338&quot; target=&quot;_blank&quot;&gt;JSR 338&lt;/a&gt; - Java Persistence 2.1&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=339&quot; target=&quot;_blank&quot;&gt;JSR 339&lt;/a&gt; - JAX-RS 2.0: The Java API for RESTful WebServices&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=340&quot; target=&quot;_blank&quot;&gt;JSR 340&lt;/a&gt; - Java Servlet 3.1 Specification&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=341&quot; target=&quot;_blank&quot;&gt;JSR 341&lt;/a&gt; - Expression Language 3.0&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=342&quot; target=&quot;_blank&quot;&gt;JSR 342&lt;/a&gt;&amp;nbsp;- &lt;b&gt;Java EE 7 Specification&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=343&quot; target=&quot;_blank&quot;&gt;JSR 343&lt;/a&gt; - JMS 2.0&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=344&quot; target=&quot;_blank&quot;&gt;JSR 344&lt;/a&gt; - JSF 2.2&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=345&quot; target=&quot;_blank&quot;&gt;JSR 345&lt;/a&gt; - EJB 3.2&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=346&quot; target=&quot;_blank&quot;&gt;JSR 346&lt;/a&gt; - Contexts and Dependency Injection for Java EE 1.1&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=349&quot; target=&quot;_blank&quot;&gt;JSR 349&lt;/a&gt; - Bean Validation 1.1&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=350&quot; target=&quot;_blank&quot;&gt;JSR 350&lt;/a&gt; - Java State Management&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=352&quot; target=&quot;_blank&quot;&gt;JSR 352&lt;/a&gt; - Batch Applications for the Java Platform&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=353&quot; target=&quot;_blank&quot;&gt;JSR 353&lt;/a&gt; - Java API for JSON Processing&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Post on Java EE 6 is &lt;a href=&quot;http://tadbytes.blogspot.com/2012/02/java-ee-6.html&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Reference:&lt;/b&gt;&lt;br /&gt;
1. &lt;a href=&quot;http://jdevelopment.nl/open-source/java-ee-7-progress-page/&quot;&gt;Jdevelopment&amp;nbsp;&lt;/a&gt;&lt;br /&gt;
2. Java Magazine&lt;br /&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;text-align: center;&quot;&gt;            &lt;tbody&gt;
&lt;tr style=&quot;background-color: #d2d2d2; height: 30px;&quot;&gt;                &lt;td&gt;&lt;img align=&quot;left&quot; alt=&quot;www.oracle.com/javamagazine&quot; class=&quot;navlogo&quot; src=&quot;http://images-cdn.dashdigital.com/javamagazine/include/icons/navbar_logo.gif?lm=1328814879000&quot; height=&quot;28&quot; /&gt;                &lt;/td&gt;                &lt;td align=&quot;right&quot; style=&quot;color: #666666; font-family: tahoma, sans-serif; font-size: 11px; font-weight: bold; line-height: 15px; padding-right: 5px;&quot;&gt;&lt;span id=&quot;top_right_text&quot;&gt;Look inside &amp;gt;&lt;/span&gt;                &lt;/td&gt;             &lt;/tr&gt;
&lt;tr style=&quot;background-color: white;&quot;&gt;                &lt;td align=&quot;center&quot; colspan=&quot;2&quot; style=&quot;padding: 10px 0px;&quot;&gt;&lt;a href=&quot;http://www.oraclejavamagazine-digital.com/javamagazine/20120102?pg=31&quot; target=&quot;_blank&quot; title=&quot;View Magazine&quot;&gt;                  &lt;img alt=&quot;30&quot; border=&quot;0&quot; src=&quot;http://images-cdn.dashdigital.com/javamagazine/20120102/data/imgpages/smtn/0031_vfffhw.gif?lm=1328814879000&quot; /&gt;                &lt;/a&gt;                &lt;/td&gt;            &lt;/tr&gt;
&lt;tr style=&quot;background-color: #d2d2d2; height: 30px;&quot;&gt;                &lt;td align=&quot;center&quot; colspan=&quot;2&quot; style=&quot;color: #666666; font-family: tahoma, sans-serif; font-size: 11px; font-weight: bold; line-height: 15px;&quot;&gt;&lt;span id=&quot;bottom_text&quot;&gt;Looking Ahead to Java EE 7 &lt;/span&gt;                &lt;/td&gt;            &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
3. &lt;a href=&quot;http://www.devx.com/Java/Article/47999/1763&quot; target=&quot;_blank&quot;&gt;Java EE 7&lt;/a&gt; |&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/2267409587226906685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2012/02/moving-java-ee-into-cloud.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/2267409587226906685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/2267409587226906685'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2012/02/moving-java-ee-into-cloud.html' title='Java EE 7: Moving into the Cloud'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715783422433140115.post-5907210448823547228</id><published>2012-02-22T09:57:00.000-08:00</published><updated>2012-08-15T21:36:35.758-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="JEE6"/><title type='text'>Java EE 6</title><content type='html'>&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=196&quot; target=&quot;_blank&quot;&gt;JSR 196&lt;/a&gt; - Java Authentication SPI for Containers&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=236&quot; target=&quot;_blank&quot;&gt;JSR 236&lt;/a&gt; - Concurrency Utilities (including Timer)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=237&quot; target=&quot;_blank&quot;&gt;JSR 237&lt;/a&gt; - Work Manager for Application Servers&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=299&quot; target=&quot;_blank&quot;&gt;JSR 299&lt;/a&gt; - Web Beans 1.0&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=311&quot; target=&quot;_blank&quot;&gt;JSR 311&lt;/a&gt; - JAX-RS: Java API for RESTful Web Services&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=314&quot; target=&quot;_blank&quot;&gt;JSR 314&lt;/a&gt; - Java Server Faces 2.0 &amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=315&quot; target=&quot;_blank&quot;&gt;JSR 315&lt;/a&gt; - Servlet 3.0&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=316&quot; target=&quot;_blank&quot;&gt;JSR 316&lt;/a&gt; - &lt;b&gt;Java EE 6 Specification&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jcp.org/en/jsr/detail?id=317&quot; target=&quot;_blank&quot;&gt;JSR 317&lt;/a&gt; - Java Persistence 2.0 &lt;/li&gt;
&lt;li&gt;EJB 3.1&lt;/li&gt;
&lt;/ul&gt;
Post on Java EE 7 is &lt;a href=&quot;http://tadbytes.blogspot.com/2012/02/moving-java-ee-into-cloud.html&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;References:&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.oracle.com/technetwork/articles/javaee/javaee6overview-141808.html&quot; target=&quot;_blank&quot;&gt;Oracle Java EE 6&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href=&quot;http://www.javabeat.net/articles/99-new-features-in-java-ee-60-3.html&quot; target=&quot;_blank&quot;&gt;New Features in Java EE 6&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blogs.oracle.com/arungupta/resource/javaee6-hol-feb2012.pdf&quot; target=&quot;_blank&quot;&gt;Hands on Lab&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blogs.oracle.com/enterprisetechtips/entry/using_cdi_and_dependency_injection&quot; target=&quot;_blank&quot;&gt;Using CDI with JSF&lt;/a&gt;&amp;nbsp;| &lt;a href=&quot;http://java.dzone.com/articles/cdi-di-p1?page=0,1&quot; target=&quot;_blank&quot;&gt;CDI Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CDI &lt;a href=&quot;http://antoniogoncalves.org/2011/01/12/bootstrapping-cdi-in-several-environments/&quot; target=&quot;_blank&quot;&gt;Bootstrapping&lt;/a&gt;&amp;nbsp;| &lt;a href=&quot;http://antoniogoncalves.org/2011/02/07/adding-cdi-to-an-existing-java-ee-6-application/&quot; target=&quot;_blank&quot;&gt;Adding&lt;/a&gt; |&amp;nbsp;&amp;nbsp;Tutorial Part &lt;a href=&quot;http://antoniogoncalves.org/2011/04/07/injection-with-cdi-part-i/&quot; target=&quot;_blank&quot;&gt;I&lt;/a&gt; | &amp;nbsp;&lt;a href=&quot;http://antoniogoncalves.org/2011/05/03/injection-with-cdi-part-ii/&quot; target=&quot;_blank&quot;&gt;II&lt;/a&gt;&amp;nbsp;| &lt;a href=&quot;http://antoniogoncalves.org/2011/09/25/injection-with-cdi-part-iii/&quot; target=&quot;_blank&quot;&gt;III&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.theserverside.com/news/1373391/Dependency-Injection-in-Java-EE-6-Part-1&quot; target=&quot;_blank&quot;&gt;Dependency Injection&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://spf13.com/post/soap-vs-rest/&quot; target=&quot;_blank&quot;&gt;SOAP vs. REST&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tadbytes.blogspot.com/feeds/5907210448823547228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tadbytes.blogspot.com/2012/02/java-ee-6.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/5907210448823547228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715783422433140115/posts/default/5907210448823547228'/><link rel='alternate' type='text/html' href='http://tadbytes.blogspot.com/2012/02/java-ee-6.html' title='Java EE 6'/><author><name>cheer-up</name><uri>http://www.blogger.com/profile/08248055349422793728</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>