Version 0.0.7
Hazirlayan: Dogan ZORLU, Grup YAZILIM, IZMIR, dogan@grup.com.tr
Baslama Tarihi: 11 Ekim 1999
Son Guncelleme: 02.12.1999
Aciklama: Burada bulacaginiz bilgiler, webden simdiye kadar edinmis oldugum bilgilerin, kendi deneyimlerim isiginda derlenip toparlanmasiyla hazirlanmistir. Buradaki optimizasyonlari yapmak butunuyle sizin sorumlulugunuzdadir. Olasi veri kayiplarindan, sistem cokmelerinden bu islemleri uygulayanlar sorumludurlar.
Kullanilacak Bilgisayarin Linux Icin Hazirlanmasi
Tum Guc Yonetimi Ozelliklerini Devre Disi Birakin
Bilgisayarimizin performansi, surekli calismasi ve disklerinin surekli donmesiyle dogrudan baglantilidir. Bu nedenle cpu bekleme konumu ve ozellikle disklerin durdurulmasi ozelliklerinin devre disi birakilmasi cok ONEMLIDIR. Aksi taksirde bu suspend durumundan bilgisayarin tekrar normal konumuna donmesi icin gececek hatiri sayilir bir beklemeye neden olacaktir.
Sistem Kernel'inde Yapilabilecek Degisiklikler
En Guncel Surumu Kullanin !
PGCC Kullanin
Pentium makinaniz varsa, bunun icin optimize edilmis olan bu derleyiciyi kullanin.
Islemcinizi Dogru Secin
Kernel parametrelerini ayarlarken, makinanizdaki islemciyi secin. Processor Family = (PPro,Pentium) gibi. Bu, kernelinizin islemcinizin tum instruction setini kullanmasina ve dolayisiyla performans artisina neden olacaktir.
MTRR Destegi Ekleyin
Eger Islemciniz Pentium Pro/II/III yada AMD K2-2/3 den biriyse MTRR = [X] olmalidir.
Math Emulation Devre Disi !
Islemciniz Math Coprocessor tasiyorsa, kernel ayarlarindan Math Emulation degerini devre disi birakin. Bu Matamatik yogun (X gibi) islemlerde muthis fark edecektir.
SMP Sadece SMP Makinalar Icindir
SMP destegini, ancak makinaniz SMP bir makinaysa, yani birden fazla islemci iceriyorsa devreye sokun. Aksi halde devre disi birakin.
Server larda Guc Yonetimi Olmaz
Eger Linux' iniz server olarak calisiyorsa APM (Advanced Power Management) devre disi birakilmalidir. Disklerin durup tekrar calismasi omurlerini azalttigindan cok buyuk sistemlerde, diskler ayri bir unite icinde olup hicbir zaman kapatilmamalidir.
Chipset Duzeltmeleri Gerekli Oldugunda Aktive Edilmeli
Kernel icinde cesitli chipsetler icin hata duzeltmeleri yapilabilmesine olanak saglanmistir. Eger sizin sisteminiz bu chipsetlerden ihtiva etmiyorsa bunlari devre disi birakin. Ornegin RZ1000 chipseti.
Birden Cok Disk Icin Stripping (RAID-0)
Eger birden cok diskiniz varsa RAID-0 devreye konulmalidir.
Kernel/User Netlink
Kernel/User Netlink ozelligini devre disi birakin
SCSI Destegi SCSI Sistemler Icindir
Eger SCSI cihazlariniz yıoksa, SCSI destegini devre disi birakin
SCSI Sistemlerde Probe All LUN
Eger mutlaka tum LUN (Logical Unit Number) lari check etmek istemiyorsaniz Probe All Luns ozelligini devre disi birakin. Dikkat ! Eger Makinanizdaki SCSI cihaz bosluk atlayarak bu degere sahipse (Orn, Lun 1: HDISK1, Lun 3: HDISK2) bu ozelligi devre disi birakmayiniz.
Verbose SCSI Error Reporting
Verbose SCSI error reporting ozelligini devre disi birakiniz.
SCSI Logging Facility
SCSI Logiing Facility ozelligini devre disi birakiniz.
Maximum Number Of Commands Per LUN
Deneyerek sistemize en uygun degeri bulunuz. Herhangi bir standardi yada yaklasimi yok.
Network Gerekli Mi ?
Eger gerekli degilse, tum network cihazlarini devre disi birakin.
Maximum Number of Unix98 PTYs
Bu degeri 128 olarak tanimlayin
Watchdog Timer Support
Bu ozelligi devre disi birakin
Gerekli File Sistemler Icin Destek Verin
Sadece sisteminizde kullanacaginiz file sistem ler icin destek verin. Digerlerini devre disi birakin (Ornegin MSDOS (VFAT), EXT2fs, /dev/pts, /proc ve ISO 9660 CDROM genellikle yeterlidir.)
Network File Sistemler Icin Gerekli Olanlara Destek Verin
Network file sistemler icin, sadece gerekli olanlara (ornegin NFS (#undef NFS_PARANOIA ile birlikte)) destek verin.
Console Suruculerini Devre Disi Birakin
VGA Text Console yeterli. Digerlerini devre disi birakin.
Enhanced Real Time Clock Support
Buna ihtiyacimiz yok. Devre disi birakin
Gereksiz Seri Port ve Mouse Suruculeri
Gereksiz seri port ve mouse suruculerini devre disi birakin.
TV Kartiniz Var mi ?
Eger cevabiniz hayirsa Video for Linux 'i devre disi birakin.
NON SCSI/IDE/ATAPI CDROMs
Hic geregi yok. (Eger side bir tane bunlardan yoksa tabii ki) Devre disi birakin.
ISDN Var mi ?
Cevabimiz genllikle hayir. O halde devre disi birakin.
Loadable Modullere Gerek Var mi ?
Bttv (video4linux) gibi ozellikle bazi parametreleri disardan girilmesi gereken cihazlarin disinda modul olarak birseyler olusturmayin. Eger kernel too big gibi bir hata alirsaniz make bzlilo ile derleyebilirsiniz.
Amateur Radio
Buda ne ? Devre disi birakin.
Irda SubSystem
Eger bir notebook yada benzeri birsey uzerinden infrared kullanmiyorsaniz, devre disi birakin.
Makina Multimedya Destegi Veriyor mu ?
Eger cevabiniz hayirsa tum ses kartlari ve joystick leri devre disi birakin.
Linux Sistem Programlarinin Hazirlanmasi
Sisteminizda calisan uygulamalarin olabildigince guncel surumlerini kullanin. Bu, hatalari en aza indirilmis bir sisteme ve daha durayli bir Linux'a sahip olmanizi saglayacaktir. Derleyici olarak (eger makinaniz pentium serisi ise) pgcc kullanin.
Tum Gereksiz Sistem Servisleri ve Daemon lari Devre Disi Birakin
Bilgisayarinizda gereksiz uygulamalari devre disi birakin. Ornegin evde kullandiginiz bilgisayarda web sunucusunun, news sunucusunun, samba nın calismasi oldukca gereksizdir. Benzer sekilde web sunucusu olarak kullanilan bir makinada X serverin calismasi da ornek verilebilir.
Az Gerekli Uygulamalarin Onceliklerini Dusurun
Sisteminizde calisan uygulamalarin onceliklerini nice komutuyla dusurebilirsiniz. Ornegin evdeki makinanizda sendmail yada cron programlarinin yuksek oncelige ihtiyaclari yoktur. Benzer sekilde internet proxy makinasi olarak calisan bir makinada cron yada news sunucusunun onceliklerinin yuksek olmasinin bir geregi yoktur.
IRQ Kesintilerinin Onceliklerini Ayarlayın
irqtune, cok kullanisli bir yardimcidir. Bir veritabani sunucusu, ethernet kartindan cok disk islemleri yapar. Bu nedenle ethernet onceligi dusurulurken, disk controlller onceligi yukseltilebilir. Ornegin irqtune 11 8 (11 adaptec scsi kontroller irq su, 8 PCI Ne2000 ethernet irq su) bir veritabani sunucusu icin iyi bir tercihken, bir internet gateway icinse irqtune 8 11 daha iyi bir tercihtir.
IDE Diskiniz Varsa Disk Erisim Parametrelerini Duzenleyin
HDPARM, ide controller inizin calisma parametrelerini ayarlayabildiginiz bir programdir. Read-ahead bufferi, DMA kullanimi gibi cesitli parametreleri duzenleyebilirsiniz. Ayni zamanda harddisk uzerindeki cache, chipset gibi ozelliklere de bagli oldugundan her sistem icin en uygun degerin tespit edilmesi onemlidir. Ayni zamanda diskten bir seferde okunan bilginin hacmi de bu parametrelerde onem tasir. Ornegin veritabani uygulamalari gibi bilgiyi blok blok okuyan bir uygulama yogun calisiyorsa, DMA aktivasyonu sirali okuma performasyonunu artirirken, rasgele okuma hizini dusurebilir.
Sistem Daemon larinin Ayarlanmasi
TCP/UDP Performansi
Sisteminizin band genisligi iyiyse (ornegin local 10 mbit) yapilacak birkac ufak degisiklikle, TCP performansi onemli olcuda arttirilabilir.
Time Stamps
Duraysiz baglantilarda ve dusuk hizlarda networkte cevaplama/band genisligi utilizasyonu icin kullanilan bir parametredir. Intranetlerde iyi bir ethernet altyapisi ve hizli bir omurga oldugu icin buna ihtiyac yoktur. echo 0 > /proc/sys/net/ipv4/tcp_timestamps komutuyla bu ozellik devre disi birakilabilir.
Tcp Window Scaling
Duraysiz baglantilarda ve dusuk hizlarda uzun beklemelrin duzeltilmesi icin kullanilan bir parametredir. Intranetlerde iyi bir ethernet altyapisi ve hizli bir omurga oldugu icin buna ihtiyac yoktur. echo 0 > /proc/sys/net/ipv4/tcp_window_scaling komutuyla bu ozellik devre disi birakilabilir.
Selective Acknowledgements
Duraysiz baglantilarda ve dusuk hizlarda network utilizasyonu icin kullanilan bir parametredir. Intranetlerde iyi bir ethernet altyapisi ve hizli bir omurga oldugu icin buna ihtiyac yoktur. echo 0 > /proc/sys/net/ipv4/tcp_sack komutuyla bu ozellik devre disi birakilabilir.
PPPD - Internete Giden Yol
Burada, 56 k modemler ile internet baglantisinin tune edilmesi anlatilmistir.
56K Hazir Mi ?
Oncelikle modeminizin hizini kontrol edin. Internete baglandiginizda hiziniz 57600 gorunuyorsa V90 yada 56KFlex devrede degil demektir. Bazi eski USR 56 k modemlerde flash bios update programlari ile bu yukleniyordu. Gercekte baglanti hizinizin 44000 gibi biryerlerde olmasi gerekli.
Seri Portlarinizin Hizlarini Ayarladiniz Mi ?
#!/bin/sh
/bin/setserial -v /dev/modem port 0x2f8 irq 3 spd_vhi
/bin/sleep 1s
/bin/setserial -v /dev/modem port 0x2f8 irq 3 spd_cust baud_base
460800 divisor 2
/bin/sleep 1s
/bin/setserial -v /dev/modem port 0x2f8 irq 3 spd_vhi
scripti, seri portlarinizin
hizlarini, 56k icin uygun hale getirir.
MRU/MTU
Bu degerler bir seferde modemden gonderilecek ve alinacak paket buyulugunu belirtir. Eger servis saglayiciniz bir deger onermiyorsa, deneyerek bulabilirsiniz. 576 dan baslayabilirsiniz. (Bu genellikle en iyi verim alinan degerdir) pppd.options dosyasi icinden degistirilir.
HDPARM, Tanrim Burada da Mi ?
HDPARM ile ide interrupt ini unmask edin. Bu sayede ide interrupti olustugunda ayni anda seri port icin olusan interrupt ta process edilebilir. Aksi halde ide devredeyken seri port interrupt ina sistem aldirmayacak ve o an gelen paket iptal edilecektir.
irqTune, Modem Interrupt i Daha Muhim !
irqtune ile modem portunun irq priority sini artirin.
Apache Web Sunucusu
Statik kutuphaneleri kullanin.
AddModule modules/mod_mmap_static.o satirini httpd.conf dosyasina ekleyin.
Statik sayfalarinizi konfigurasyon dizinindeki mmap.conf dosyasina ekleyiniz.
Dinamik Modul Destegini Devre Disi Birakin
Eger dinamik modulleri yuklemiyorsaniz, Apache derlenirken derleyiciye -DDYNAMIC_MODULE_LIMIT=0 parametresini veriniz.
Ram Diskler Herzaman Hizlidir
Temel bilesenleri (ornegin web sunucusunun index.html dosyasi ve onda bulunan resimler) yaratilacak bir RAM disk uzerinde tutulabilir. Hatta, RAM uygunsa icindekiler sayfalarinin tumu bu disk uzerinde tutulabilir. Bu siteye ilk giriste istemci makinanin hizli bir erisime sahip olmasina ve o istemci icin acilacak yeni worker thread icin ilave zaman kazandiracaktir.
Sembolik Linkleri Takip Etmeyin
Eger mutlaka grekli degilse FollowSymLinks ozelliklerini devre disi birakin. Aksi halde apache her linkin dogrulanmasina calisacak ve bu zaman kaybina neden olacaktir. Ornegin /www/test/index.html dosyasina erismek icin once /www ye, sonra /www/test e ve en sonunda /www/test/index.html e lstat cekecek ve bunu asla cache etmeyecektir. Yogun sitelerde ciddi performans sorunlarina sebep olabilir.
Sembolik Linkleri Dogrulamayin
SymLinksIfOwnerMatch i cok gerekmedikce kullanmayin.
DocumentRoot /www/htdocs
<Directory />
Options SymLinksIfOwnerMatch
</Directory>
Yukaridaki gibi bir dizin icin, bu disinden alinan her dosyadaki linkler, nerde olursa olsun match edilecektir. Inanilmaz bir yavasliga neden olabilir.
AllowOverride Ozelligini Kapatin
Eger mutlaka gerekli degilse, httpd.conf icinden AllowOverride i none olarak atayin. Aksi halde dizin yapisi icinde en ustten en alta .htaccess dosyalarina tek tek bakilacaktir. Bu islem cache edilmediginden her baglantida ekstra disk islemleri gerektirecektir.
KeepAliveTimeout Degerini Ihtiyaciniza Gore Duzenleyiniz
Bu deger server isleminin baglantiyi ne kadar canli tutacagini gosteririr. Genellikle 15 sn oalrak gelir. Fakat eger e-commerce isi yapiliyorsa bu degeri buyuk vermek (Orn 60 sn) ciddi performans artisi saglayabilir.
StartServer, Web Sunucusunun Resepsiyonu !
StartServer, apache yuklenir yuklenmez kactane serverin birlikte yuklenecegini belirtir. Herbir server istemci cagrisi geldiginde ona cevap verir. Eger sitenizin yuksek bir hit i varsa 64 iyi bir baslangic olabilir. Eger hala bir yavaslik varsa, sizi tatmin edecek degere kadar 32 ser 32 ser arttirin.
MaxClient Degerini StartServer Degerine Gore Ayarlayin
Eger siteniz ayni anda StartServer'dan daha fazla hit almiyorsa bu degeri StartServer'a esitleyin. Eger site cok daha yukluyse MaxClient i daha fazla artirmaniz gerekecektir. Aksi halde StartServer asiri miktarda buyutulurse sistem performansinin dusmesine sebep olabilir.
SMP Makinalarda Derleme Sirasinda Asagidaki Parametreyi Tanimlayin
Eger SMP (Symmetric Multi Processor) bir sisteme sahipseniz, Makefile icindeki FLAGS bolumune -DSINGLE_LISTEN_UNSERIALIZED_ACCEPT i define edip tekrar derleme yapin.
HostName Lookup
HostName lookup off olmalidir, zira her istemci makina icin bir nsquery calistirdigindan sistem performansi dusecektir.
SAMBA - Super SMB Sunucu
OpLocks - %30 Servis Performansi
Oplocks, SMB istemcisinin kullandigi dosyayi kendi uzerinde yazma okuma cache islemlerini yapip yapmayacagini belirleyen bir ozelliktir. Eger server bu degeri true dondururse, istemci bu dosyayi sadece kendisinin kullandigina hukmedip tum islemlerinde kendi cache ini kullanacaktir. Oplocks ondeger olarak on konumunda gelmekte. Bu degeri Oplocks=false konumuna getirmek, sisteminizde %30 lara varan bir performans artisina neden olabilir. Fakat her paylastirilmis kaynak icin kontrol edilmeli, eger o kaynak icin sorun yaratiyorsa tekrar on konumuna getirilmelidir.
Level2 Oplocks (Read Only)
Eger sistem uzerinde ayni dosyalar (clipart kutuphaneleri, DLL ler gibi) cesitli istemciler tarfaindan yogun bir sekilde kullaniliyorsa, read only oplocks belirgin bir performans artisi saglayabilir. Bu degeri Level2 Oplocks = false yapin. Bu sayede istemci makinalar sadece okuma icin cache tutacaklardir.
Sadece Okunur Paylasimlarda Fake oplocks
Fake oplocks = true olmasi, istemcinin dosya uzerinde tum islemler icin kendi cache ini kullanmasina izin verir. Bu ise sadece okunabilen dosyalar uzerinde calisildigi icin onemli bir avantaj saglar. Burda dikkat edilmesi gerekn nokta bu paylasimin mutlaka sadece okunur olmasidir. Dikkat ! Eger readwrite bir paylasimsa ortak kullanilan dosyalarin bozulmasina neden olabilir.
Socket Options, Performans Merkezi !
Samba sunucusunun network seviyesindeki performansini encok etkileyen ozelliktir. Fakat her netwok icin farkli performans degisikliklerine neden olabilir.
TCP_NODELAY: okuma performansini nerdeyse %100 artiran bir parametredir.
READ SIZE: Veilecek deger, Samba nin diskten ayni anda ne kadar bilgiyi okuyup yazacagini belirtir. Bu deger 65536 ya kadar artirilabilir. Samba bir islem yuruturken eger o islem sirasinda gerekli veri buyuklugu, verilen bu degerden buyukse, iki seferde bir islemi tamamlayacaktir. Ornegin agdan gelen bir paketi diske yazmaya kalktiginda, eger gelen paketin buyuklugu bu degerden buyukse, networkten tum datayi almadan gelen miktari yazacak, sonra kalan tarafini networkten alip diske yazacaktir. Bu arada network performansi dusecektir. Bu nedenle bu degerin, sizin networkunuzde gelen paketlerin buyuklugune bagli olarak optimum bir degerde olmasi gerekir.
MAX XMIT: Samba, bir istemciyle baglanti kurdugunda, aralarinda ne kadar buyuklukte paketlerle iletisim kurcaklarina karar vermek icin bu degeri kullanirlar. Bu deger sadece Samba nin ne buyuklukte paketler kabul ettigini istemciye bildirdigi degerdir. Istemci tarafinda daha buyuk paketler kabul ediliyor da olabilir. Genellikle ilk basta istemci kendisinin ne buyuklukte paketler kullandigini Samba ya soyler, fakat bu deger herzaman optimum olmayabilir. Bazi istemci makinalar bunun icin 65536 degeri verirken bazilari da kucuk degerler verebilir. Samba sunucumuzun bu gibi durumlarda aldanmamasi icin bu degeri 65536 yapmak yavas calisan bazi istemcilerin daha hizli calismasina neden olabilir.
SHARE MODES: Bazi durumlarda dosyalarin acilmasi cok yavas olabilir. Bunun bir nedeni, Samba nin dos dosya acma modlarini desteklemeye calismasidir. Bu deger SHARE MODES = no seklinde verilirse, dosyayi ilk anda bir istemci read/write acabilir, sonra acanlar ise sadece read yetkilerine sahip olurlar. Not, dbase yada paradox gibi sadece wks db engine e sahip veritabanlari bu sekliyle calismaz. Ancak client/server (ornegin Pervasive.SQL gibi) uygulamalar bu paylasimi yapabilirler. Yani istemci tarafindan (eger o dosya daha once read/write baskasi tarafindan acilmissa) sopen(.....) seklinde bir dosya acilmaya kalkildiginda dosya read/write acilamayacaktir. Ne acidir ki Window uygulamalarinin bircogu veri alisverisi icin bu yontemi kullanirlar.
LOG LEVEL: Samba loglarinin hangi detayda tutulacagini belirtir. Eger 2 den buyukse bayagi bir disk islemi yaratacagindan performansi dusurur. O nedenle 2 den kucuk olmalidir.
READ RAW, WRITE RAW: eger bu degerler yes olarak tanimliysa, Samba disk islemlerini dusuk seviyede kendi yapar. Bazi sistemlerde performans kaybina neden olabilir. Her iki degerin read raw = no, write raw = no olarak ayarlanmalidir.
READ PREDICTION: Eger sadece okunur paylasimlariniz varsa, bu deger yes olmalidir. Boylelikle Samba bir data blogunu okuduktan sonra hemen ardindan gelen blogu da okuyup bekler. Boylelikle sirali okumalarda (ornegin dosya kopyalama) gozle gorulur bir performans artisi saglanabilir. Okunan deger READ SIZE dan buyuk degildir.
Unutmayin !, Samba performansi istemci makinalara da baglidir. Istemci makinalarinizin windowsize degerlerini kontrol edin.
Database Sunucularinin Ayarlanmasi
Pervasive.SQL 2000
Memory Usage
Pervasive Control Center bolumunden asagidaki ayarlar yapildiginda, bu veritabani sunucusundan maksimum verim elde edilebilmektedir. Denenmis olan kendi sistemimizde, TPC-B testinde 85.000-100000 transaction/second bir deger elde edilmistir. Ayni parametrelerle NT uzerinde 50000 transaction/second civarinda bir performan elde edilebiliyordu. (Ayni makinada bundan once NT vardi. Tipatip ayni konfigurasyon) Burada sistem henuz tam optimize edilmemis, sadece PSQL optimize edilmistir.
Allocate Resource At Startup : Yes
Back To Minimal State if Inactive: No
Performance Tuning
Cache Allocation Size: Sistemdeki bos RAM miktarin 2/3
miktari. (KB Olarak)
Index Balancing: On
Number of Communication Threads: 10 (Sistemde kullanici
sayisi 100 e yakin yada fazlaysa 20)
Number of I/O threads: 8 (Is yuku fazlaysa maximum 64)
Progress
Progress icin en can alici nokta proserv edilecek database lerin toplami ve toplam bos alanda kullanilacak shared memory alanidir. Soyle bir hesapla herbir proserv edilecek database icin ne kadar blok kullanilacagi hesaplanabilir:
Blok Sayisi: ((DBS) / (TDB)) * (RAM / AU)
DBS: proserv edilecek database buyuklugu
TDB: Toplam database buyuklugu
RAM: Kullanilabilir fiziksel bellek
AU: Allocation Unit (UNIX lerde 4096, Novell icin 2048, MS
Windows NT de 4096 default)
Sistemde bir database proserv edilirken,
proserv <databaseName> -H <hostname (gerekiyorsa) -N <protokol> -B <Blok Sayisi> -d dmy
seklinde bir kullanim yeterlidir. Aksi halde progress, shared bellegi, proserv edilen database ler arasinda esit paylastirmakta, boylelikle buyuk hacimdeki datalarin ihtiyac duydugu sort buffer kuculmekte ve cache de az geldiginden index update islemleri yavaslamaktadir.
Dogan ZORLU
Grup Yazilim Ltd,
Hasan Tahsin Caddesi No:21/12 Bahcelievler/IZMIR
(232) 255 4175
Orijinal URL: https://web.archive.org/web/20011004033235/www.linux.org.tr/documents/