Skip to content

Instantly share code, notes, and snippets.

@furdarius
furdarius / nix-perfomance.md
Last active June 3, 2024 16:12
Linux system performance optimization

Ulimit

The ulimit is a mechanism for restrict the amount of various resources a process an consume. There's a shell command to set the ulimit for processes which are started in that shell.

If you are using bash as your shell, you can list the current ulimit settings by issuing this command in a terminal: ulimit -a

How to increase open file limits in linux

Increase system-wide limits:

@furdarius
furdarius / update-phpstorm.sh
Last active August 3, 2018 04:50
Update EAP PhpStorm
#!/bin/bash -e
# IMPORTANT. Phpstom installation exists on /opt/phpstorm.
# IMPORTANT. Run with sudo!
# Early Access program: https://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Early+Access+Program
echo -n "Please enter the PhpStorm download url (eg http://download.jetbrains.com/webide/PhpStorm-EAP-141.690.tar.gz): "
read url
# Download file from url
echo "Downloading PhpStorm to ~/Downloads"
@furdarius
furdarius / upgrade-datagrip.sh
Last active April 8, 2017 08:27
Upgrade DataGrip
#!/bin/bash -e
# IMPORTANT. Run with sudo!
# Early Access program: https://www.jetbrains.com/datagrip/nextversion/
echo -n "Please enter the DataGrip download url (eg https://download.jetbrains.com/datagrip/datagrip-171.3780.53.tar.gz): "
read url
# Download file from url
echo "Downloading DataGrip to ~/Downloads"
cd ~/Downloads
@furdarius
furdarius / firewall.sh
Created March 21, 2017 08:32
Iptables desktop firewall
#!/bin/bash
#Simple Firewall Script.
#Add "pre-up iptables-restore < /etc/iptables.rules" to /etc/network/interfaces
#Setting up default kernel tunings here (don't worry too much about these right now, they are acceptable defaults) #DROP ICMP echo-requests sent to broadcast/multi-cast addresses.
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
#DROP source routed packets
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
#Enable TCP SYN cookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
@furdarius
furdarius / upgrade-gogland.sh
Created April 11, 2017 12:21
Upgrade Gogland
#!/bin/bash -e
# IMPORTANT. Run with sudo!
# Early Access program: https://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Early+Access+Program
echo -n "Please enter the Gogland download url (eg https://download.jetbrains.com/go/gogland-171.3780.106.tar.gz): "
read url
# Download file from url
echo "Downloading Gogland to ~/Downloads"
cd ~/Downloads
@furdarius
furdarius / docker-experimental-enable.md
Last active April 9, 2020 09:44
Как активировать experimental mode в Docker на Ubuntu 17.04

В последних версиях Ubuntu запуском процессов в системе занимается Systemd, и именно этот init manager определяет, что происходит при sudo service docker start.

  1. Узнаем, где найти кофигурационный файл для запуска Docker Daemon:
$ sudo service docker status | grep Loaded
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
  1. Открываем указанный файл (в моем случае /lib/systemd/system/docker.service) и добавляем в строку запуска процесса флаг --experimental=true
@furdarius
furdarius / wsvhost.conf
Created October 3, 2017 19:48
Пример конфигурации для websocket vhost, при использовании nginx как proxy.
server {
listen 80;
server_name ws.mysite.com;
access_log off;
return 301 https://$server_name$request_uri;
}
upstream wsserver {
ip_hash;
@furdarius
furdarius / ubuntu_agnoster_install.md
Created December 2, 2017 20:21 — forked from renshuki/ubuntu_agnoster_install.md
Ubuntu 16.04 + Terminator + Oh My ZSH with Agnoster Theme

Install Terminator (shell)

sudo add-apt-repository ppa:gnome-terminator
sudo apt-get update
sudo apt-get install terminator

Terminator should be setup as default now. Restart your terminal (shortcut: "Ctrl+Alt+T").

Install ZSH

@furdarius
furdarius / gracefulshutdown.go
Last active January 2, 2020 18:12
Go Graceful Shutdown with errorgroup
sigTrap := shutdown.TermSignalTrap()
g, ctx := errgroup.WithContext(context.Background())
s := &http.Server{...}
go func() {
err := s.ListenAndServe()
if err != nil && err != http.ErrServerClosed {
log.Fatalf("httpServer error: %v.", err.Error())