View gist:49f3360457524a3af371
------ Slide 8 ------ | |
sudo su - | |
yum install -y gcc make pkgconfig pcre-devel ncurses-devel | |
cd /usr/src | |
wget http://repo.varnish-cache.org/source/varnish-3.0.2.tar.gz -O - | tar xz | |
cd varnish-3.0.2 | |
./configure | |
make && make install | |
exit |
View run
#!/bin/sh | |
# Daemontools run script for starting Varnish | |
exec 2>&1 | |
exec echo | mail -s "Varnish in Tokyo restarting" admin@example.com | |
exec varnishd -F -s malloc,130M -u nobody -g nobody -p cli_timeout=30 \ | |
-p thread_pool_add_delay=2 -p thread_pool_min=400 -p thread_pool_max=4000 \ | |
-p session_linger=100 -f /etc/varnish/varnish.tokyo.vcl -T 127.0.0.1:2000 \ | |
-a 0.0.0.0:80 |
View newrelic.h
/* | |
* Add X-Request-Start header so we can track queue times in New Relic RPM | |
*/ | |
#include <stdio.h> | |
#include <sys/time.h> | |
struct timeval detail_time; | |
gettimeofday(&detail_time, NULL); | |
char start[20]; |
View create_swapfile.sh
#!/bin/bash | |
# Create swapfile if not already present. Default size is 2 GB. | |
if [ ${SWAP_SIZE_MEGABYTES:=2048} -eq 0 ];then | |
echo No swap size given, skipping. | |
else | |
if [ -e /swapfile ];then | |
echo /swapfile already exists, skipping. | |
else | |
echo Creating /swapfile of $SWAP_SIZE_MEGABYTES MB |
View email_varnish_reports.sh
#!/bin/bash | |
# Send Munin generated Varnish statistics by e-mail | |
VARNISH_LOCATION="Tokyo" | |
REPORT_PATH=/var/www/html/munin/localhost/localhost | |
EMAIL_RECIPIENT="admin@example.com" | |
EMAIL_SUBJECT="Varnish Weekly Statistics" | |
EMAIL_BODY="Weekly statistics attached." | |
hash mutt 2>&- || { echo -e >&2 "\nMutt not installed, aborting.\n"; exit 1; } |
View varnish.tokyo.vcl
# VCL configuration file for Varnish | |
# Define which IP addresses or hosts have access to files that are | |
# blocked from the public internet | |
acl internal { | |
"localhost"; | |
} | |
# Define origin servers | |
backend web { .host = "1.2.3.4"; .port = "80"; } |
View DetectLongRunningProcesses.sql
/****************************************** | |
Script By: Aasim Abdullah | |
For : http://connectsql.blogspot.com | |
Purpose: To detect long running sessions, | |
send complete information through mail about such sessions | |
and killing session, which are acceding given limit of execution time. | |
******************************************/ | |
---BusyProcess Detection | |
SET NOCOUNT ON |
View bootstrap-windows.rb
#!/usr/bin/env/ruby | |
require 'socket' | |
# AWS API Credentials | |
AWS_ACCESS_KEY_ID = "your-aws-access-key-id" | |
AWS_SECRET_ACCESS_KEY = "your-aws-secret-access-key" | |
# Node details | |
NODE_NAME = "webserver-01.example.com" |
View 01papertrail.config
# IMPORTANT: this example is potentially out of date. The latest version can be found here: https://github.com/papertrail/remote_syslog2/blob/master/examples/remote_syslog.ebextensions.config | |
# See http://help.papertrailapp.com/kb/hosting-services/aws-elastic-beanstalk/ | |
# Usage: | |
# - replace <VERSION> with the version of remote_syslog2 you want to use. Example: .../download/v0.14/remote_syslog_linux_amd64.tar.gz | |
# - replace <YOUR-TRACKED-FILES> with the files you want to monitor for new log lines. Example: - /var/log/httpd/access_log | |
# - replace <YOUR-APP-NAME> with the name of the application | |
# - replace <YOUR-LOG-DESTINATION> and <YOUR-PORT-NUMBER> with the values shown under log destinations: https://papertrailapp.com/account/destinations | |
sources: |
View knife.rb
# Knife Configuration File. | |
# | |
# This is a Ruby DSL to set configuration parameters for Knife's | |
# general options. The default location for this file is | |
# ~/.chef/knife.rb. If multiple Chef repositories are used, | |
# per-repository configuration files can be created. A per repository | |
# configuration file must be .chef/knife.rb in the base directory of | |
# the Chef repository. For example, | |
# | |
# ~/Development/chef-repo/.chef/knife.rb |
OlderNewer