Liste limitleri ve zorlukları

Bir sunucu üzerinde yaklaşık 380 bin dosya (html sayfası) var. Sunucu üzerinden python çalıştırarak bul değiştir yapmak istiyorum dosyalarda. Tabi önce içerideki dosyaları bir listeye alacak, hangilerinde bul değiştir yapacağını for döngüsü ve if karşılaştırması ile yapacak. Ama bu işe girmeden önce sunucuyu ne kadar yorar, liste limiti var mıdır, ne kadar bellek ve işlemci tüketir, sunucudaki diğer siteleri yavaşlatır mı gibi sorular geldi aklıma. Bu konuda fikirlerinizi merak ediyorum.

1 Beğeni

Girmeden degil, girdikten sonra bakman lazim.

Sunucu zaten limitte calismiyorsa surekli tekrarlamadigin, elle bir kere calistirdigin is hic bir seyi yormaz.

Ama tabi ki dosyalari lokale alip denemenin onunde bir engel yok.

380k cok ufak bi sayi. (O(n) is icin.)

Bunu kimse bilemez.

2 Beğeni

Localde yaptıklarımda bu işlem bir kaç saat sürüyordu. Yani her dosyayı oku, içerik değiştir yeniden yaz şeklinde. Localde değiştirip yüklemek de ayrı dert oluyor. FTP ile yüklenmiyor zaten. Doğrudan sunucu üzerinde çalıştırmaktan da diğer siteler yüzünden çekiniyorum ama gece sabaha karşı bir saatte deneyeceğim bakalım.

Evet gerçekten hızlı ve kısa sürdü. İşlemci ve belleği yordu biraz ama diğer siteler çok etkilenmedi bundan. Bunu da not düşeyim.

1 Beğeni

CPU ve memory kullanimi hakkinda bir fikrin olmasi lazim o zaman. Ama dedigim gibi, tek thread ile yapiyorsan kimseyi yormamasi lazim. RAII (with) kullanmayi biliyorsun zaten.

FTP bitti. SFTP bile kullanilmiyor; scp veya daha iyisi rsync tavsiye ederim. Directory yurumek kasiyorsa klasik tar+gzip de is gorur.

Web sunuculari cogunlukla network I/O-bound. Yani islemcileri, hafizayi veya disk I/O’yu asiri yormadigin surece farkina bile varmamalari lazim. (Dedim ama sikistirilmis cevap veriyorlarsa CPU da kullanabilirler.)

1 Beğeni

Bu arada localde neden uzun sürdüğünü yeni farkettim. O sırada başka birşeyle çalıştığım için her 100 yazdırmada programı bekletiyormuşum. Aklımda öyle kalmış sanki uzun sürüyor gibi. Kasıtlı bir uzatmaymış. Localda de kısa sürüyor bunu da not düşeyim.